- 1. ElasticBeansTalk + Spring boot でEverything(It’s you)してみた
- 2. Paraya Server と IntelliJ IDEAで Webアプリケーションの開発環境を構築する
- 3. ThymeleafでHTMLのレイアウトを共有する方法(thymeleaf-layout-dialect)
- 4. どのディレクトリに居ても正しい gradle wrapper を起動する
- 5. Jacksonで複数の型を取りうるJSONの値を特定クラスにマッピングする
- 6. Visual StudioでJavaの実行環境の追加とデフォルトの設定
- 7. 多言語対応のAtCoderテストツールをJavaで作成した話
- 8. Java 17 (OpenJDK: Eclipse Temurin) を Homebrew で macOS にインストールする
- 9. 「マイクロサービスパターン」の復習 2章 サービス分割
- 10. Eclipseの設定のメモ
- 11. pypyはC言語並に早かった(素数編) cython-annotationの例有
- 12. Windows11のVSCodeでJAVAの環境構築してみた!
- 13. APPRNDとPREPEND両方向の読み込みに対応したRemoteMediatorの実装
- 14. Java Silver 攻略その2
- 15. 【Python】Pythonの型名が覚えられなかったのでメモ
- 16. Spring Boot 2.5から出るようになったプレーンアーカイブの抑止
- 17. ユニットテストのためのAdapter Pattern
- 18. Microsoft Tech Flash 3 月号 まとめ
- 19. java silver 間違えやすい箇所
- 20. 多くのコンストラクタパラメータに直面したときには、ビルダーを検討する
ElasticBeansTalk + Spring boot でEverything(It’s you)してみた
# Elastic Beanstalkって?

> AWS Elastic Beanstalk は、Java、.NET、PHP、Node.js、Python、Ruby、Go および Docker を使用して開発されたウェブアプリケーションやサービスを、Apache、Nginx、Passenger、IIS など使い慣れたサーバーでデプロイおよびスケーリングするための、使いやすいサービスです。
というのは漠然とわかっていたのですが、触ったことがなかったので、とりあえずElastic Beanstalk x Spring bootで何かやってみたかったから、ちょっと触ってみた程度です。
例によってEverything(It’s you)です。get叩いて1フレーズ返すだけですが・・
# アプリケーション作成
します。ダウンロードしたファイルを解凍します。
“`
unzip payara-5.2022.1.zip
“`解凍したフォルダを任意のフォルダに移動します。
“`
mv ~/Downloads/payara5 ~/tools/
“`# Payara Platform Toolsをインストールする
IntelliJ IDEAを起動します。プラグインをクリックします。
検索バーに、「Payara」と入力します。
「Payara Pl
ThymeleafでHTMLのレイアウトを共有する方法(thymeleaf-layout-dialect)
Spring Bootを学習中、thymeleafでHTMLファイルで共通するレイアウト部分を共有する方法を学んだので、アウトプットも兼ねて投稿します!
## thymeleaf-layout-dialectとは?
thymeleafのライブラリの一つで、レイアウトを共通化させたい時にとても便利です。
イメージとしては大枠となるレイアウトをベースとして固定し、後から必要な要素だけ足して反映させていくような形です。手順は下記の通りで行います。
## 手順
#### ①「thymeleaf-layout-dialect」ライブラリを取得
#### ②実際にHTMLファイルに記載??
## 「thymeleaf-layout-dialect」ライブラリを取得
Spring bootのプロジェクトを作成後、pom.xmlに下記を追記し、
thymeleaf-layout-dialectライブラリを追加します。 {
GITDIR=`git rev-parse –show-cdup 2> /dev/null`
if [ -e “$GITDIR./gradlew” ]
then
echo Using $GITDIR./gradlew
$GITDIR./gradlew “$@”
else
echo Using $(/usr/bin/which gradle)
$(/usr/bin/which gradle) “$@”
fi
}
“`
Jacksonで複数の型を取りうるJSONの値を特定クラスにマッピングする
## JSONは型が自由
JSONはJavaScriptのオブジェクトっぽい、キーバリューでのデータの表現方法なわけですが、その型には、オブジェクト、配列、文字列、数値、true、false、nullが存在してます。オブジェクトの構造は自由、配列内の型も固定されているわけではないので、以下のようなデータも存在します(良し悪しはおいておいて)。“`json
{
“hoge” : [“string”, [“array1”, “array2”], {“name” : “三雲修”, “code” : “B-2-1”}]
}
“`これを[Jackson](https://github.com/FasterXML/jackson “github”)というありがたーーーーいライブラリを使用し、いずれにしてもあるクラスにマッピングさせようとした際の備忘録です。
## 思いつく限りでの解決策
扱う以前にそもそもこの形式のデータに相対したときにいくつかのアプローチが考えられる~~かと思い~~ます。
### (1) 全部オブジェクトにしちゃう
“`json
{
“hoge” :
Visual StudioでJavaの実行環境の追加とデフォルトの設定
Visual StudioでJavaの開発環境を作成する際に、Javaの実行環境を追加したり、どれをデフォルトとして使うのかを設定する方法を確認しました。
settings.jsonに`java.configuration.runtimes`に配列で複数のJavaの実行環境を`name`、`path`を指定して設定できます。
更にデフォルトで使うものは`”default”: true`を指定することが可能です。“`
“java.configuration.runtimes”: [
{
“name”: “JavaSE-1.8”,
“path”: “/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home”,
“default”: true
}
],
“`
多言語対応のAtCoderテストツールをJavaで作成した話
初めまして、初投稿になります。記事というものを始めて執筆するため読みづらい部分がありますが、ご了承ください。
私は最近趣味で競技プログラミングを触っていて主にAtCoderと呼ばれるサイトでプログラミングをしています。
AtCoderでは大量の過去のコンテスト問題を触って勉強することができますが、いちいち入力例・解答例をコピーペーストでターミナルに張る作業がめんどくさいと感じてきてしまいました。
そこで過去問をターゲットとして自動で入力例・回答例から正解・不正解を出力してくれるテスト自動化ツールをJavaを使って作成しました。## はじめに
この記事では以下の記事を参考に作成をしています。
実際に以下記事では私のツールでは賄えない部分まで賄えているため一度ご確認お願い致します。
– https://github.com/kyuridenamida/atcoder-tools
– https://github.com/nodchip/OnlineJudgeHelper
– https://qiita.com/EngTks/items/a542c8f
Java 17 (OpenJDK: Eclipse Temurin) を Homebrew で macOS にインストールする
## 概要
– Java 17 (Eclipse Temurin 17) を Homebrew で macOS にインストールする。
## 今回の環境
– macOS Big Sur 11.6
## インストール
インストール方法は Eclipse Temurin の前身である AdoptOpenJDK の公式資料が参考になる。
[GitHub \- AdoptOpenJDK/homebrew\-openjdk: AdoptOpenJDK HomeBrew Tap](https://github.com/AdoptOpenJDK/homebrew-openjdk)
“`
$ brew tap homebrew/cask-versions
$ brew install –cask temurin17
“`## java_home コマンドでインストールされたディレクトリの場所を確認
“`
$ /usr/libexec/java_home -v 17
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Content
「マイクロサービスパターン」の復習 2章 サービス分割
## 概要
Java読書会でせっかく勉強したのにつぎつぎと忘れていくので、印象に残ったところを記録していく
http://www.javareading.com/bof/
## 2章 サービスへの分割
– アーキテクチャとはなにか?
– どうやってサービスに分割するか?## アーキテクチャとは?
– アーキテクチャとは、ソフトウェア要素とその関係性
– 4 + 1ビューモデル
– 論理ビュー:クラス構成、パッケージ構成とそれらの依存関係
– 実装ビュー:jarやwarの配置と、それらの依存関係
– プロセスビュー:プロセスとプロセス間通信
– デプロイビュー:マシンとネットワーク
– アーキテクチャが重要なのは、品質属性に関わるから
– 特にマイクロサービスはメンテナンス性やデプロイ容易性に影響する
– アーキテクチャスタイル
– 建築様式
– 寺院を建てるのにもXXX様式が複数ある
– 論理ビューについてのアーキテクチャスタイル
– 階層アーキテクチャ
– お馴染みの3層アーキテクチャなど
Eclipseの設定のメモ
# Eclipseの設定
### インストール済みのJRE
[ウインドウ] → [設定] → [Java] → [インストール済みのJRE]
JREではなくJDKを指定する### メモリの状況の表示
[ウインドウ] → [設定] → [一般] → [ヒープ・ステイタスを表示]にチェック
私の環境(Pleiades2019)ではデフォルトでチェックがついていました。画面の右下のメモリの表示にマウスカーソルを近づけると
起動時のメモリ量(Xms)と最大のメモリ量(Xmx)を確認できる。
pypyはC言語並に早かった(素数編) cython-annotationの例有
Pythonが大好きなのですが、処理が遅くて頭を悩ませています。
どうにか早くならないかとpypyとcython(pure python mode)でやってみました。
…すみません、ソースコードはこちらの方のを使わせていただきました。
https://qiita.com/L_A_P_119611/items/40f6c71c136fbe3cf32a## 環境
MacOS: catalina
CPU: i9
– それぞれ3回計測した結果を載せています。## pythonの結果
python3.9での実行結果は下記通りでした。
(arrangeをnumpyのに変えたら早くなるのだろうか…)
python3 src_sosu1.py 123456789
123456789 = 3 * 3 * 3607 * 3803
所要時間は39.019531秒です
所要時間は34.007243秒です
所要時間は35.707815秒です## javaの結果
java Factrization 123456789
123456789 = 3803 * 3607 * 3 * 3
所要
Windows11のVSCodeでJAVAの環境構築してみた!
今日からJAVAの勉強を新しく初めていこうとおもったので、環境構築から備忘録程度に書いていこうと思います。
PC:Windows11
エディタ:VSCode
参考にさせていただいたサイト:
https://teramaguro.hatenablog.com/entry/2021/12/28/042743①まず下記URLからJAVAの開発に必要なインストーラをインストールする。
↪その際に自分の開発環境に合うものを適宜選ぶ(今回はWindows11なのでWindowsを選択)

②今回は下記インストーラをインストールしました。
 {
LoadType.APPEND -> {
val remoteKeys = getRemoteKeyForLastItem(state)
// If remoteKeys is null, that means the refresh result is not in the database yet.
//
Java Silver 攻略その2
java Silver 試験対策 その2
java.lang 以外のパッケージを利用するとき
import文が必要変数宣言でvarが使えるとき
ローカル変数の初期化、拡張for文、通常for文a|b
aかbがtrueならtrueを返す
a^b
aとbが異なるときtrueを返す
【Python】Pythonの型名が覚えられなかったのでメモ
Java, Rubyの実務経験があり、Pythonも覚えてみたいと考えた今日このごろ。
型の種類と名前が全く一致しなかった戒め。下記のフォーマットで自分用にメモ
###### 大枠のジャンル
“`
・Pythonでの呼び方
・Java, Ruby(他覚えやすかったキーワードなど)での呼び方※あれば感想など
“`###### 数値
“`
・int
・整数・float
・小数点※散々やってきたので大丈夫。小数点の計算 ^ Javaのときは「BigDicimal」を使わないとダメだぞ!と怒られた記憶がある
“`###### 論理
“`
・bool(Yes / No)
・boolean
“`###### 文字列
“`
・str
・String※大した違いじゃないからまぁいいんだけど、こういう微妙な違いがあると困るよね。
“`###### シーケンス
“`
・list
・ArrayList(Java)(後から追加できるからArrayListで覚える)・tuple
・list(配列)(後から変更できないからlistで覚える)
Spring Boot 2.5から出るようになったプレーンアーカイブの抑止
## 現象
Spring Bootを2.4.9から2.5.10へアップデートしてから、
CircleCIのARTIFACTSを見ると、`-plain.jar`や`-plain.war`が出力されるようになった。
特に利用しないので、出力されないようにしたい。## 解決策
Gradleファイルの、Jar及びWarタスクそれぞれに、下記記述を追加する。
### JAR
“`build.gradle
jar {
enabled = true
archiveClassifier = ”
}
“`### WAR
“`build.gradle
war {
enabled = true
archiveClassifier = ”
}
“`## 参考
https://spring.pleiades.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/
https://zenn.dev/donchan922/articles/ea76614f72b15e
ユニットテストのためのAdapter Pattern
使用するAPIが余りにも巨大でユニットテストし辛いとき、Adapter Patternを使えば解決できる場合がある。
## 問題のコード
“`java
public interface MoneyManager {// 所持金を取得する
int balance(User user);// お金を引き出す
void withdraw(User user, int amount);// お金を預ける
void deposit(User user, int amount);// 新規口座を開設する
BankAccount createBankAccount(User user);// 口座を閉鎖する
void deleteBankAccount(BankAccount account);// 口座情報を更新する
void updateBankAccount(BankAccount account, BankAccountUpdate update);
Microsoft Tech Flash 3 月号 まとめ
みなさんごきげんよう。Microsoft App Innovation チームです。
Microsoft App Innovation チームでは、毎月 1 回、開発者 / IT 技術者のみなさんに最新技術情報をキュレーションした News Letter を配信しています。Qiita では、その内容をテキストメール形式でご紹介したいと思います。
まだ購読されていない方はぜひご登録ください!
[Microsoft Tech Flash 購読はこちらから](https://www.microsoft.com/ja-jp/mscorp/communications.aspx?Dev_QT=PET3035062)# Microsoft Tech Flash 3 月号 – Java on Azure Day や Azure Stack HCI ウェビナー情報をはじめ、最新技術情報をお届けします。
## Top Topic
Azure 上で Java を活用するための最新技術情報を入手できる 1 日 Java on Azure Day 2022 開
java silver 間違えやすい箇所
Java Silver 間違えやすい箇所まとめ
抽象メソッドについて
void method(); と記述した場合
public abstract が自動で付与される処理を記述したいとき
default method を定義する
public default 戻り値 メソッド名(引数リスト){};null + concat “A”
コンパイルエラーになる
null + “A”
nullA と表示されるコンパイル時 省略記号
-m module モジュールの位置を表示
-p module-pass moduleの格納されている位置を表示する
-cp class pass クラスパスを指定する
-d directory ディレクトリを指定配列宣言方法
int[] a = new int[0];
ok!
int[] b = new int [];
一次元目は省略できない
compile error!
int c[2]{2,3};
初期化演算子を用いるときは、要素数指定しないint[] d ={};
要素なし okLocalDate.of(2018,
多くのコンストラクタパラメータに直面したときには、ビルダーを検討する
# これは何?
Effective Java 第3版を読んで自分なりにかみ砕いた内容を記事に落としていきます。
良いコードを書くための選択肢の一つになれば最高なので、頑張ります。
※読み進める中で知識のアップデート等あれば都度更新いたします。# 問題提起
[前の記事](https://qiita.com/arikei/items/bf5fdef55dce4cb34f7d)で紹介したstaticファクトリメソッドやコンストラクタは共通の課題がある。
__「多くの必須ではないパラメータ(オプションパラメータ)に上手く対応できない」__この問題にうまく対応する方法が __Builderパターン__ である。
## 選択肢①(あまり良くない)
テレスコーピング・コンストラクタが使われたりするらしい。。。~~~java
//テレスコーピング・コンストラクタ
public class Hoge {
private final int 必須パラメータ1
private final int 必須パラメータ2
private final int オプションパラメータ1
pr