- 1. Apache Camel Spring Boot starters を使った単純なcamelアプリの作成手順
- 2. Eclipseで保存時に未使用のimportが勝手に削除されるのを防止する
- 3. java(ソースファイル分割)
- 4. 初心に帰ってJava入門①データ型とアクセス修飾子
- 5. 【アーキテクチャー設計】JavaアプリでSQLの実行方法どうする? 2WaySql vs ORM
- 6. AtCoder 茶diff 一覧
- 7. Spring バリデーションとエラーコード
- 8. 【Java入門】変数のスコープ(有効範囲、ローカル変数、インスタンス変数、static変数)
- 9. Thymeleaf @RestController, @Controllerの違い
- 10. Javaのデバッグ実行【Java初心者向け】
- 11. Spring Boot+Thymeleaf 処理を別々に分けたい場合
- 12. 【Java入門】型変換について(キャスト、プロモーション)
- 13. JavaはPowerPointにSmartArtグラフィックを追加します
- 14. ラムダ式をほんのり理解する
- 15. コマンドラインでJavaのコンパイルや実行
- 16. スコープの使い方(JSP&サーブレット)
- 17. Eclipseで使える便利なショートカットキー
- 18. Spring Boot + Spring Data JPA複数のテーブル結合について
- 19. 【Spring Boot】環境構築(macOS)
- 20. Java開発環境構築 OpenJDK 11をインストールして実行までの流れ
Apache Camel Spring Boot starters を使った単純なcamelアプリの作成手順
[**Apache Camel**](https://camel.apache.org/) で作られたアプリの動作検証のため、新たに単純なアプリを作りたかったが、Java系は1から作ったことがほとんど無くて勝手がわからない。
ひとまず公式ページの説明に従って、1秒毎にログを出すrouteが存在するcamelアプリを作ってみた。camelの起動などに関しては検証しないので、簡単に作れそうな [**Camel Spring Boot starters**](https://camel.apache.org/camel-spring-boot/latest/index.html) を使った。
## 環境
* Java: 1.8.0_191
* Maven: 3.6.3
* Camel: 3.2.0
* Spring: 5.2.5.RELEASE
* Spring Boot: 2.2.6.RELEASE—
* OS: Ubuntu 18.04
* IDE: IntelliJ IDEA## プロジェクトの用意
mavenの場合 `pom.xml` が必要なことは何となく知
Eclipseで保存時に未使用のimportが勝手に削除されるのを防止する
#なぜ不便なのか
Eclipseで、ソースコードを一時的にコメントアウトして保存をした時に、そこで使用されているクラスのimport文が消えてしまう。
コメントアウトから戻したときにimport文を書くのが面倒ということも勿論あるが、それよりimportミスが怖い。
importするときには、Eclipseの優秀な提案機能によって一覧から選ぶだけでimport文が自動入力されるが、
importするクラス名の中には、同名のクラス名が異なるパッケージに入っているものもあり、コメントアウトから戻したときに選び間違えることもなくはない。#環境
Eclipse Java EE IDE for Web Developers.
Version: Neon Release (4.6.0)
Build id: 20160613-1800#改善前
![改善前の設定(import文が消える).PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619869/7f70df1a-8cb0-923b-fac5-030
java(ソースファイル分割)
##元のソースファイル
“`java
public class Calc {
public static void main(String[] args) {
int a = 10; int b = 2;
int total = tasu(a, b);
int delta = hiku(a, b);
System.out.println(“足すと” + total + “、引くと” + delta);
}
public static int tasu(int a, int b) {
return (a + b);
}
public static int hiku(int a, int b) {
return (a – b);
}
}“`
##複数のクラスに分割
main() と tase(),haiku()でファイルを分割
“`java
public class Calc {
public static void main(String[] args) {
初心に帰ってJava入門①データ型とアクセス修飾子
#始めに
本記事は、自分が初心に帰りJavaを勉強しなおす記事です。
何回かに分けて投稿します。お暇であれば見ていただければと思います。環境:
jdk:JavaSE8
エディタ:VSCode#今回扱うもの
・よく使うJavaのデータ型
・アクセス修飾子#よく使うJavaのデータ型
以下が良く使うものです。
それぞれ解説していきます。“`java:Literal.java
public class Literal {
public byte byteValue = 1;
protected short shortValue = 1;
int intValue = 1;
private long longValue = 1L;
public float floatValue = 1.0F;
public double doubleValue = 1.0;
public char charValue = ‘1’;
public boolean booleanValue = true;
publi
【アーキテクチャー設計】JavaアプリでSQLの実行方法どうする? 2WaySql vs ORM
# 【アーキテクチャー設計】JavaアプリでSQLの実行方法どうする? 2WaySql vs ORM
Javaアプリで、SQLを実行する時って、何を使うか迷いますよね。
そんな方の為に記事を書いてみました。結論から言うと、2WaySql(DBFlute,uroboroSQL,Doma等)が個人的には、お勧めです。
※前提:中規模以上の業務アプリ開発で、開発者が数十名ぐらいいる場合2WaySqlの特徴は以下。
* SQLは外部ファイルに記載
* アプリからでもSQLクライアントからでも動作する何が良いかというと、、、
* 柔軟性があること。
外部ファイル化してあるし、SQLクライアントでそのままSQL実行できるので開発しやすい。
あと、Java以外の言語に移行しやすいし、他のプラットフォームにも移行しやすい。
※Javaに直接クエリ(Criteria API、JPQL、SQLとか)が記載されていると、Javaと依存しまくりで、移行性が低い。* 開発面
ぶっちゃけただのSQL書くだけなので簡単に開発できる。開発者のレベルが低くてもOK。
※Criteria API、
AtCoder 茶diff 一覧
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Difficulty Status を利用して、プログラミングの勉強をしています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 茶埋完了
茶diff`(Excluding)`埋め完了しましたので、~~コピペ資料として~~まとめたいと思います。
# 茶diff 一覧
|Contest|Problem|Diffculty|記事|コメント|
|:–:|:–:|:–:|:–:|:–:|
|abc073|Spring バリデーションとエラーコード### データバインド用アノテーション
ドメインクラスで使用するアノテーションです。| アノテーション | 説明 | 例 |
|:————|:————|:————|
| @NumberFormat | 指定されたフォーマットの文字列を数値型に変換します。 | @NumberFormat(pattern=”#,###”) |
| @DateTimeFormat | 指定されたフォーマットの文字列を日付型に変換します。 | @DateTimeFormat(pattern=”yyyy/MM/dd”) |“`java:Form.java
import org.springframework.format.annotation.DateTimeFormat;public class SignupForm {
@DateTimeFormat(pattern=”yyyy/MM/dd”)
private Date birthday;
}
“`### データバインドのエラメッセージ
resoucesディレクトリに`mes
【Java入門】変数のスコープ(有効範囲、ローカル変数、インスタンス変数、static変数)
#目的
Java言語を含めたプログラミングの学習を始めたばかりの方、既学習者の方は復習用に、
変数のスコープを学ぶ為に書いています。前回は[型変換](https://qiita.com/morioheisei/items/28ab5fd69570e01cd317)について学びました。
今回は**変数のスコープ**についてです。[【Java入門目次】](https://qiita.com/morioheisei/items/6c7fc063c26e63d890ac)
・[変数と型](https://qiita.com/morioheisei/items/3d27e82d6cd88068dded)
・[型変換](https://qiita.com/morioheisei/items/28ab5fd69570e01cd317)
・変数のスコープ ←今ここ
・文字列の操作(準備中)
・配列の操作(準備中)
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)
・
Thymeleaf @RestController, @Controllerの違い
# 概要
Thymeleafを扱う初心者が @Controller と @RestController の挙動の違いを知りたかったので,調べました.#環境
– springboot
– IntellJ CE
– Lombok###はじめに
sprintboot を起動し,次のURLにアクセスします.
http://localhost:8080/〇〇### @ Controller
以下のようなコードで
http://localhost:8080/list
にアクセスすると,
main/resources/templates/list_display.html
のhtmlが画面に表示されます.(”list_display”という文字列がそのまま表示されるわけではない)“`java
@Controller
public class AppController {
@GetMapping(“list”)
public String from_list(){
return “list_display”;
}
}
“`
Javaのデバッグ実行【Java初心者向け】
#はじめに
この記事では、既にJavaの環境構築が済んでいる状態で、デバッグ実行の手順について説明しております。
まだ環境構築がお済みでない方は、下記の記事で流れを説明しているのでご覧ください。
[Java開発環境構築 OpenJDK 11をインストールして実行までの流れ](https://qiita.com/gatchan03/items/618f867d7447afa50379)OS: macOS Catalina バージョン10.15.4
テキストエディタ:Visual Studio Code- Insiders(VSCode)#デバッグ実行
ではさっそくデバッグ実行していきます。
VSCodeを開いてください。上図
Spring Boot+Thymeleaf 処理を別々に分けたい場合
Thymeleaf を使って、「こういう使い方があったのか」と感じたので、それについて記述します。
例えば下記のようにformの指定先が同じ(‘/reservations/’ + ${date} + ‘/’ + ${roomId}}”)
だけど、処理を別々に分けたい場合があるとします。“`html:index.html
【Java入門】型変換について(キャスト、プロモーション)
#目的
Java言語を含めたプログラミングの学習を始めたばかりの方、既学習者の方は復習用に、
型変換を学ぶ為に書いています。前回は[変数と型](https://qiita.com/morioheisei/items/3d27e82d6cd88068dded)について学びました。
今回は**型変換**についてです。[【Java入門目次】](https://qiita.com/morioheisei/items/6c7fc063c26e63d890ac)
・[変数と型](https://qiita.com/morioheisei/items/3d27e82d6cd88068dded)
・型変換 ←今ここ
・[変数のスコープ](https://qiita.com/morioheisei/items/c56ab32b68ce92d32206)
・文字列の操作(準備中)
・配列の操作(準備中)
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)
・モジュールにつ
JavaはPowerPointにSmartArtグラフィックを追加します
SmartArtグラフィックは、テキスト情報の視覚的表現であり、強力な組版機能を備えています。この記事では、Javaコードを使用してスライドにSmartArtグラフィックを作成し、そのレイアウトをカスタマイズする方法を示します。
**使用ツール:** Free Spire.Presentation for Java(無料版)
**インストール方法1:** [Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)パッケージをダウンロードして解凍します、次に、libフォルダーから、Spire.Presentation.jarパッケージをJavaアプリケーションにインポートします。
**インストール方法2:** Mavenウェアハウスを介してインストールおよびインポートします。詳細な操作手順については、リンクを参照してください:
https://www.e-iceblue.cn/licensing/install-spirepdf-for-
ラムダ式をほんのり理解する
オラクルシルバーの勉強でラムダ式に苦戦したので、理解したことをメモとしてまとめておきます。
#ラムダ式は何ができるのか
メソッドを変数のように扱える。
メソッドの引数にメソッドを渡せる。
匿名クラスと同じことをより簡単な記述で書ける。##ラムダ式のお決まり事
関数型インターフェースの抽象メソッドをオーバーライドする必要がある。
※関数型インターフェース = 1つだけ抽象メソッドを持つインターフェース。##基本の書き方
(型 引数名) ー> {処理1;};“`java
(Object o) -> {System.out.println(o);};
“`#普通 → 匿名クラス → ラムダ式の順番に書いてみる
ラムダ式の仕組みを理解するために
・普通に実装
・匿名クラスで実装
・ラムダ式で実装
という3つで書いてみます。今回実装するのは関数型インターフェースConsumer。
抽象メソッドacceptをオーバーライドして実装していきます。“`java:Consumerインターフェース
@FunctionalInterface
public interface C
コマンドラインでJavaのコンパイルや実行
はじめに
この記事はこれからJavaを勉強する方に向けた私自身の理解している内容の記録です。Javaの機能や記載方法についてを、下記のリストに分けて記載していきます。
・変数と型、型変換 [Javaの変数宣言や初期化、型について](https://qiita.com/pitan109/items/2538b234a2c6e20c037f)
・変数のスコープ [Java 変数のスコープ(変数を見れる範囲)](https://qiita.com/pitan109/items/b30589bc4c2e8169734c)
・文字列の操作(準備中)
・配列の操作(準備中)
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・例外処理 [Javaの例外処理について](https://qiita.com/pitan109/items/c9910edddc007126df41)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)
・モジュールについて(準備中)ただこの記事ではリストとは別で、記事の中でも行なっていたコマン
スコープの使い方(JSP&サーブレット)
サーブレットクラスで生成したインスタンスをJSPファイルで利用するにはスコープというインスタンスを保存できる領域を利用します。
利用するスコープには「リクエストスコープ」「セッションスコープ」「アプリケーションスコープ」の3種類があり、それぞれのスコープによってインスタンスを保存した際の有効期限などが異なります。以下、それぞれのスコープの基本構文です。
##リクエストスコープ
リクエスト間でデータを共有したい場合に使用する。“`java:
//requestスコープに保存
request.setAttribute(“属性名”,インスタンス);
//requestスコープから取得
インスタンスの型 変数名 = (インスタンスの型) request.getAttribute(“属性名”);
“`##セッションスコープ
HTTPセッション間でデータを共有したい場合に使用する“`java:
//Sessionスコープの取得(保存領域を確保)
HttpSession session = request.getSession(true);
//sessio
Eclipseで使える便利なショートカットキー
今回は私がEclipseでよく使うショートカットキーをまとめてみました。(Ctrl + Cなどの基本的なものも含めています。)
##コード編集
– **[Ctrl] + [Alt] + [↑/↓]:**選択した行を上/下に複製
– **[Alt] + [↑/↓]:**選択した行を上/下に移動
– **[Ctrl] + [D]:**選択した行を消去
– **[Ctrl] + [/]:**選択した行をコメントにする/解除
– **[Ctrl] + [Shift] + [/]:**選択範囲をブロックコメントに
– **[Ctrl] + [Shift] + [\\]:**選択範囲のブロックコメントを解除
– **[Shift] + [Alt] + [R]:**リネーム(メソッド名や変数名にカーソルを合わせていれば、ソースコード内の名前をまとめて変更できる)
– **[Ctrl] + [Back space/Deleat]:**選択カーソルの前/後ろの単語を消去
– **[Ctrl] + [Space]:**入力候補の表示/補完(sysoutを入力後に使うとSystem.out.pr
Spring Boot + Spring Data JPA複数のテーブル結合について
Springを使用してのINNER JOINやLEFT JOINなど参考書を読んでも苦戦したので、備忘録として記載します。
#今回実現したいこと
部屋名と備品名を画面に出力する。##Roomテーブル
| | カラム名 | データ型 |
|:—————–|—————–:|:—————–:|
| 部屋番号 | room_id | INT |
| 部屋名 | room_name | VARCHAR|##Equipmentテーブル
| | カラム名 | データ型 |
|:—————–|———–:|:—————–:|
| 備品番号 |equipmentId_id | INT |
| 備品名
【Spring Boot】環境構築(macOS)
Eclipse、Java、Spring Boot全てにおいて初心者です。
なんとか環境構築を終えましたが、間違いがあればご教授お願いいたします。## 開発環境
– macOS
– Eclipse 4.8 Photon
– Spring Tools 4## Eclipseのダウンロード
##### ❶ [公式サイト](https://mergedoc.osdn.jp/)にアクセスし、`Eclipse 4.8 Photon` を選択
![スクリーンショット 2020-05-12 17.04.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506701/de63f808-63d7-ca22-7239-15b21a03f5ef.png)##### ❷ `Mac 64bit` 、 `Full Edition` 、 `Java` を選択
![スクリーンショット 2020-05-12 17.05.28.png](https://qiita-image-store.s3.ap-northeast-1
Java開発環境構築 OpenJDK 11をインストールして実行までの流れ
#最初に
Javaの学習に伴い、環境構築をすることになったため、一連の流れをまとめました。– Java始めたいけど、環境構築どうすればいいんだろう?
– 公式オラクルでJDKのインストールしようとしたらプロファイルの作成を求められるから別の方法ないかな?
– JDKインストールしたはいいけど、そっからどうすればいいの?という方の参考になればと思います。
OS: macOS Catalina バージョン10.15.4
テキストエディタ:Visual Studio Code- Insiders(VSCode)#Javaってどんな特徴があるのよ
インストールの前にさらりとJavaの特徴を書いておきます。
知ってるよという方は、さらりと流してください。##”Write once , run anywhere”
Javaのスローガンでこういう言葉があります。
「一度コードを書けば、どこでも実行できるよ」ということで、
Javaの開発はWindows,Mac,Linuxどれでも行うことができ、
汎用的でOSに依存しません。##主にどんなことができるの?
参考サイト:ht