JAVA関連のことを調べてみた2020年07月25日

JAVA関連のことを調べてみた2020年07月25日

JavaでJsonをPOSTする〜HttpURLConnection〜

# 概要
JavaでJSONをHTTP POSTする方法をまとめた記事です

必要最低限の書き方のみまとめています。

#前提

簡略化のため、JSON形式の文字列を用意しました。
JSONをjavaに変換する方法などは他の記事を参考にして下さい。

呼び出し元がこのクラスをインスタンス化し、execute()メソッドを呼び出すことを想定しています。

# 手順
手順は以下の通りです
1.HttpURLConnectionで接続するための設定をする
2.接続を確立する
3.リクエスとボディに書き込みを行う
4.レスポンスを受け取る
5.接続を切断する

# JavaでHTTP通信する方法
“`java:Sample.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.URL;

p

元記事を表示

書籍紹介:Spring Boot 初心者におすすめの参考書!

※記事の内容は2020年7月25日執筆時点のものです
##書籍情報
今日はSpring Boot初心者におすすめの書籍を紹介したいと思います。
私自身も業務でSpring Bootを初めて使う際に大変お世話になりました。
それが↓↓こちら↓↓の書籍です。

[「【後悔しないための入門書】Spring解体新書」田村達也 (著) ](https://www.amazon.co.jp/【後悔しないための入門書】Spring解体新書-Boot2で実際に作って学べる!Spring-Security、Spring-JDBC、Spring-MyBatisなど多数解説!-ebook/dp/B07H6XLXD7)

これからこの書籍のおすすめポイントをいくつかご紹介したいと思います。

##おすすめ読者像
 この書籍はJavaでのオブジェクト指向プログラミングなど基本は理解しているけれど、Spring Bootなどを使ったフレームワーク開発は未経験という方におすすめです。
 また、時間のない方、まずはSpringについてざっくりと概要を知りたい方にもおすすめです。逆に、Springについて深く理解したい

元記事を表示

月度を用いて範囲の判定をしたい

# 問題点
月度のデータをもっているときに9月以前で取得したいが、
1,2,3月は次の年のデータなので含めたくないということがあると思います。
そのときに簡易的に取り除く方法の例をメモします。

# どうやるか
以下のように月度を変換して、変換後の値を用いて判定することで解決できます。

“`java

(月度の数値 + 9) % 13
“`
例えば、9月度以前としたときに変換値<=9とすることで、 4,5,6,7,8,9月だけが取得できるようになります。 なぜなら変換後の値が以下のようになるためです。 | 月度 |変換後の値 | |:----|----------:| | 1 |10| | 2 | 11 | | 3 | 12 | | 4 | 0 | | 5 | 1 | | 6 | 2| | 7 | 3 | | 8 | 4 | | 9 | 5 | | 10 | 6 | |11 |

元記事を表示

作って学ぶ Spring Boot アプリケーション (1) -準備編-

#はじめに

現在必要に迫られて英語の勉強をしており、せっかくなら勉強も兼ねて自分にあった学習記録サービスを自分で作ってみよう、と考えてこの記事を書いています。
今回はSpring Bootアプリケーションを作りながら学んでいくというスタンスで開発を進めていきます。
複数回に分けて記事にする予定です。

#前提
必須
– Javaの基本的な知識
– Javaの開発環境
– 基本的なSpringの知識(大体の雰囲気でOK)

あればGood
– Mavenの基本的な知識
– webアプリケーションの入門レベルの知識
– h2データベースの基礎知識
– lombokの使い方

全ての知識がほぼ0の状態から始めます。
よって、上記の初歩的な知識のみを持っている状態から進めていきます。

#環境
開発言語:Java8
フレームワーク:Spring(Springを学ぶのが目的のため確定)
データベース:H2(なんとなく)
ビルドツール:Maven(なんかよく分からんくても大丈夫)
開発環境:IntelliJ(お好きな開発環境でどうぞ)

#要件定義
今回は学習記録システムを開発します。

##

元記事を表示

作って学ぶ Spring Boot アプリケーション(2) -開発編-

#はじめに

この記事は[作って学ぶ Spring Boot アプリケーション (1) -準備編-](https://qiita.com/sgr0416st/items/94a612a27c2f90260f17)の続きです。
こちらを確認していない方はまずご確認ください。
前回はSpring Bootアプリケーションの開発準備を整えてきました。
今回から実際にアプリケーションを開発していきます。

#要件
前回も書きましたが、改めてここに示しておきます。
###### データベース
学習教材と学習記録をデータとして保持して、それぞれ下記の要素を持っているものとします。

– 教材テーブル(Subject)
– 項目ID(Long)
– 学習項目(String)
– タイプ(教科等)(String)
– 学習記録テーブル(Record)
– 記録ID(Long)
– 日付(Date)
– 項目(Subject)
– 時間(Double)
– 備考(String)

######要件
以下の操作ができるようにします。

– 項

元記事を表示

SpringBoot アプリケーションをAWSEC2へデプロイ

Gradleを用いてSpringBootアプリケーションを作成しました。
これをAWS EC2へデプロイする手順について書きました。

#実行可能jarを作成

gradleのbootJarタスクで実行可能jarをつくる
参考:https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/gradle-plugin/reference/html/#packaging-executable-and-normal

“`build.gradle
bootJar {
launchScript()
}
“`

その後コマンドラインで

“`
$ gradle bootJar
“`
実行すると ./build/libs/にjarファイルが作成される

#このjarファイルをEC2へ転送

今回作成されたjarファイル名はWebToDoStarter-0.0.1-SNAPSHOT.jarとし、Desktopに置かれているとする

sftpを用いてこのファイルをEC2へ転送

“`
$ sftp -i AWSキーのパス ec2-user

元記事を表示

QuarkusでMultipart Requestの文字化け対策

ちょっと嵌ったのでメモ。

# TL;DR

これで文字化けが直る

“`xml

io.quarkus
quarkus-undertow

“`

“`java
@Provider
public class ContentTypeSetterPreProcessorInterceptor implements ContainerRequestFilter {
private @Context HttpServletRequest request;

@Override
public void filter(ContainerRequestContext requestContext) {
request.setAttribute(InputPart.DEFAULT_CHARSET_PROPERTY, StandardCharsets.UTF_8.name());
}
}
“`

# 背

元記事を表示

JavaはPDF文書に形状を描画します

PDFドキュメントの編集プロセスでは、ドキュメントにポリゴン、長方形、楕円などのグラフィックスを追加する必要がある場合があります。Free Spire.PDF for Javaは、Javaコードを使用してPDFドキュメントに図形を描画するのに役立ちます、形状の縁の色と塗りつぶしの色を設定します。

**JARパッケージのインポート**
**方法1:**[Free Spire.PDF for Java](https://www.e-iceblue.com/Download/pdf-for-java-free.html)をダウンロードして解凍し、jarパッケージをlibフォルダーに依存関係としてJavaアプリケーションに直接インポートします。

**方法2:**Mavenリポジトリからjarパッケージをインストールし、pom.xmlファイルのコードを次のように構成します。

“`java


com.e-iceblue
e-iceblue
h

元記事を表示

簡単な学習 Java

初心者がJavaをより速く、より速く学ぶために一歩一歩

![簡単な学習 Small.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/665405/e2b7598b-f861-31b1-48d3-0e0903f582be.jpeg)

Javaは強力なプログラミング言語です。 習得が簡単で楽しいJava。 この本はJavaを生き生きとさせ、風変わりでフルカラーのイラストが物事をより明るい面に保ちます。 オブジェクト指向プログラミングを整理し、クラスとメソッドでコードを再利用する方法、ループや条件ステートメントなどの制御構造を使用する方法、Javaでシェイプとパターンを描画する方法、キャンバスでゲーム、アニメーション、グラフィックを作成する方法を学びます。

ほんの少しの時間で、Javaを使用して設計および開発する方法を学ぶことができます。 この本の各レッスンは、わかりやすいステップバイステップのアプローチを使用して、前のレッスンに基づいており、基本を基礎から学ぶことができます。 明確な指示と実践的で実践的

元記事を表示

【Java】Google Custom Search APIで画像を取得する

#必要なもの
・APIキー
・検索エンジンID
どちらもGoogle Custom Search APIを有効化する過程で取得できます。

#参考サイト
APIキーと検索エンジンID取得はこちらの記事が参考になりました。
[Custom Search APIを使ってGoogle検索結果を取得する](https://qiita.com/zak_y/items/42ca0f1ea14f7046108c)

画像検索についてはこちら。
[Google Custom Search APIを使って画像収集](https://qiita.com/onlyzs/items/c56fb76ce43e45c12339)

#ソースコード
検索結果から画像を10枚ダウンロードします。
保存先はダウンロードフォルダに指定しました。

“`java:CustomSearch.java
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import jav

元記事を表示

JavaのSerializableを実際にアプリケーションを動かしながら理解する

# Serializableの意味わかりますか?

Java でWebアプリケーションを作ると、以下のような JavaBeans クラスを作ることがあると思います。

“`java:JavaBeans.java
import java.io.Serializable;

public class JavaBeans implements Serializable {

private static final long serialVersionUID = 1L;

private String aaa = null;

public String getAaa() {
return aaa;
}

public void setAaa(String aaa) {
this.aaa = aaa;
}
}
“`

この`implements Serializable`と`serialVersionUID = 1L;`の意味わかりますか?
「わかりません!」っていう人向けに書いた記事です。「わかるよ!」って

元記事を表示

javaメソッドを作る 【メモ】【java11】

##classとmainメソッド

###class
classの書き方。

“`java:setumeiclass.java
public class setumeiclass/*⇐ファイル名*/{
//この中にmainメソッドを書く。
}
“`

###mainメソッド
これがないと始まらない。
この中にコードを書く。(基本的には。)

“`java:Test.java

public class Test{
public static void main(String args[]){
/*Write the code here!!*/
}
}
“`

###例

“`java:rei.java

public class rei{
public static void main(String args[]){
System.out.println(“Hello,World!!”);
}
}

“`

###実行結果:

“`
Hello,World!!
“`

##自作メソッド

“`java:zisaku
public cl

元記事を表示

javaでアルゴリズム入門 – 累積和

# 記事の概要
自分の勉強兼メモでまとめている記事シリーズです。第五弾。
今までの記事はこちら。

|#|記事|
|:—————–:|:—————–|
|4|[javaでアルゴリズム入門 – 探索編(bit全探索)](https://qiita.com/aja_min/items/2a94758cf58fc1ea6f65)|
|3|[javaでアルゴリズム入門 – 探索編(幅優先探索)](https://qiita.com/aja_min/items/5f25e73086b2f3c720bb)|
|2|[javaでアルゴリズム入門 – 探索編(深さ優先探索)](https://qiita.com/aja_min/items/fed640d6835eb343eedf)|
|1|[javaでアルゴリズム入門 – 探索編(全探索、二分探索)](https://qiita.com/aja_min/items/2dd5abba8ebb9f8977a5)|

今回の記事では

– **累積和**

について勉強します。
探索編はいったん終了し、別のアルゴ

元記事を表示

[Processing×Java] 配列の使いかた

この記事はプログラムの構造をProcessingを通じて理解していくための記事です。
今回は配列について書いていきます。

目次
0.配列とは
1.簡単な配列のつくりかた
2.クラスをつかった配列をつくりかた
3.要素が多い配列のつくりかた
4.配列をつかった例

#0.配列とは

##0-0. **配列は簡単にいうと**

データを一列に並べたものです。
並べ方(順番)には意味があります。
よく目にする、座標(3,10)のようなものも配列の一種です。

##0-1. **なぜ配列を使うのか**
主な理由は、
**大量のデータをまとめてあつかうことができるから。**
です。

##0-2. **配列のイメージ**

|順位|チーム|
|:——————:|:——————:|
|1|巨人|
|2|DeNA|
|3|広島|
|4|阪神|
|5|中日|
|6|ヤクルト|

この表はプロ野球セリーグの順位表です。
順番と要素(チーム)が結びついて一列に並んでいます。
こんなイメージです。

#1.**簡単な配列のつくりかた**

元記事を表示

【初学者向け】技術とキャリアに関して参考になったものを並べてみた。

#概要・経緯
後輩がこれからエンジニアとしてのキャリアをスタートさせるとのことで、自分がこれまで大変お世話になってきたコンテンツ・やってきたことなんかを記事にまとめておこうと思い執筆。
また、技術の養成と同時にキャリアについて考えるのも重要だと思ったので、今回は技術(業務)・キャリアの両方に焦点を当てながらまとめていく。上から目線で恐縮ではあるが、どのコンテンツも非常に良質というか、説明が丁寧で分かりやすいことこの上ない。前提知識があまりない状態でもストレスなく理解していけるのが何より素晴らしいので、是非参考にしてもらえたらと思う。ちなみに私がつくったコンテンツは特に含めておらず、特に宣伝的な意はないのでご安心を。
**※内容は2020年7月時点のものです。**

##技術/業務編

– [「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/index.html)

主に用語を押さえる目的で利用。抽象的な解説がほぼ見当たらず、納得感を持って用語を理解できる。
特に1年目とかで開発現場入りたての時期は、技術的に期待されるこ

元記事を表示

VSCodeのLanguage Support for Java(TM) by Red Hatの最新版(0.65.0)でバグが発生する(2020年7月23日)

VSCodeを使ってJavaを書いているのですが、プロジェクトのテンプレートを作成する。Java:Create Java Projectが効かなくなり、次のようなエラーが出るようになりました。

スクリーンショット 2020-07-23 9.57.13.png

“`Java 11 or more recent is required to run. Please download and install a recent JDK“`

これが出てから普通に実行もできなくなりました。困った。
環境はRemote-Containerを用いたopen-JDK8を使っていて、昨日までは機嫌良く動いてました。JAVA_HOMEの設定も問題ない。

何でかなーと4時間くらい彷徨ったのですが、原因は前日に更新されたLang

元記事を表示

Javaの小ネタ、Tips

# 概要
徒然なるままに書き綴ってみるだけです。役に立つかどうかは知りません。また、必ずしもJava固有の話ではないと思います。

## 内容
### 多重代入
複数の変数に同じ値を代入することができます。

“`java
int x, y;
x = y = 10;
System.out.println(x); // 10
System.out.println(y); // 10
“`

これは、下記のように解釈されるっぽいです。yに10が代入されますが、Javaでは代入式も値が返りますから、 `(y = 10)` 全体の評価値がxに代入されるということですね。

“`java
x = (y = 10);
“`

## mainメソッドの書き方
mainメソッドは一般的には下記のように書くと思います。

“`java
public static void main(String[] args) {
System.out.println(“Hello world!”);
}
“`

Java5以降なら下記のように書いてもOKです。

“`java
public st

元記事を表示

tensorflow2.0の学習済みモデルをKotlin/Javaで利用する方法

# はじめに
本記事では、tensorflow2.0の学習済みモデルをKotlinで利用する方法を紹介します。
サンプルコードはKotlinのみですが、Javaでも同様の方法で動作するかと思います。

今回紹介する方法では、deeplearning4jというライブラリのKerasModelImportを利用します。
tensorflowにはJava APIが存在するので、deeplearning4j ~~などというマイナーなライブラリ~~ を使う必要は本来無いのですが、Java向けのtensorflow2.0ビルドは未だ配布されていないため、暫定的にdeeplearning4jを利用します。
(※自分でビルドすればtensorflow2.0対応のJava APIを利用できるかもしれません)

つまり、

Kotlin/JavaでDeepLearningの推論処理を動かしたい!
でも、deeplearning4jで学習コード書きたくない!!
Java向けのtensorflow2.0ビルドの配布を待てない!!!

こんな人のための繋ぎの対応策と捉えていただければと思います。

# ライブラ

元記事を表示

Javaで実行する複数ブラウザ対応(Chrome、IE、Firefox)Seleniumサンプルアプリを作成しました

# 概要
selenium関連の記事は豊富にありますが、今回はWindowsOSでとりあえずサクッとマルチブラウザテスト等で流用できるようなサンプルアプリを作成しました
※Chrome、IE、FireFoxで実施できるようにしています
※eclipseから実行の想定です

### 実行環境
Windows10 Pro
Eclipse IDE for Enterprise Java Developers
JavaSE 11

各ブラウザバージョン
Chrome:84.0.4147
Firefox:78.0.2
InternetExplorer:11.959.18    

# サンプルアプリ使用方法

###1.サンプルアプリ配置

#### サンプルアプリをClone

・下記URLからCloneしeclipseのworkspaceフォルダに配置
https://github.com/ZumWalt22/seleniumExp.git

・eclipseからCloneしたプロジェクトをインポート
ファイル>インポート>一般>既存プロジェクトをワークスペースへ でCloneしたディレ

元記事を表示

SpringBootの非同期イベント発行に必要な手順

SpringFrameworkには、Spring管理下にあるインスタンスの実行を「イベント」として登録し、イベント発行で実行を制御できる仕組みが用意されています。使うのも単純ですし、SpringBootでは非同期処理にもできます。今回はSpringBootで非同期イベントを使った非同期処理の実現例を記載します。

# 動作環境

* Java 11
* SpringBoot 2.3.1

# イベント駆動処理に必要なこと

以下3つの作成が必須です

* 処理実行に必要なパラメータ類を渡すEventクラス
* イベントを起動させるPublisherクラス
* イベントを検知して処理を開始するListenerクラス

# 実装例

今回作成するイベント:呼び出し元のクラスから文字列を受け取り、ログに出力する

イベントから受け渡す文字列を格納するクラスは以下を用います。

“`java:SampleMessage.java
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;

@

元記事を表示

OTHERカテゴリの最新記事