JAVA関連のことを調べてみた2023年01月02日

JAVA関連のことを調べてみた2023年01月02日

resilience4jを使ったCircuitBreakerパターン

# What is Circuit Breaker?
あるアプリAが外部サービスであるアプリXと連携している際、アプリXがサービスダウンした場合に他サービスへ影響を出さないよう制御する仕組み。
# 状態遷移
![名称未設定.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159675/3e5a5e01-dd54-f97f-8ea6-1c0e1e39ccea.png)

# 使用するデモ
https://github.com/resilience4j/resilience4j-spring-boot3-demo

# やってみる
health check
(`backendA`のステータスが`”state”: “CLOSED”`になっていることが確認できる。)
“`bash
curl http://localhost:9080/actuator/health | jq
% Total % Received % Xferd Average Speed Time Tim

元記事を表示

初めてのJUnit(基礎的な使い方)

今までCOBOLが業務の主流でしたが、最近Javaも使うようになったので、ここらで一度Java単体テストの手法として、JUnitの初歩的な使用方法を学習しようと思います。

## JUnitとは

JUnitについては、e-Wordsより以下のように記載されています。

>JUnitとは、Java言語で開発されたプログラムの単体テスト(ユニットテスト)を行なうためのソフトウェア。また、そこで用いられるテストコ
ードの記述体系を含むテストフレームワーク。
_[IT用語辞典 e-Wordsより](https://e-words.jp/w/JUnit.html)_

JUnitを使うことで、作成したJavaクラスやメソッドの単体テストコードが記載できるようになります。JUnitには、単体テストをするにあたって活用できるメソッドやアノテーションが提供されています。

この記事では、以下の環境で実施します。

|環境|バージョン|
|:—:|:—:|
|端末|MacBook Air 2022 (M2)|
|OS|macOS Ventura 13.0.1|
|Java|JDK18|
|JU

元記事を表示

Javaで特定のキーが一致するデータの重複を回避する方法

# # 初めに
以前複数のCSVファイルの特定のキーが一致するデータ同士を計算してDBに登録する機能の実装を行いました。その際にデータの重複や正しく正しく計算が行われないなど大変な思いをしました。今回はその解決方法を2つ紹介します。

|No|見出し|
|—|—|
|1|[1. 概要](#1-概要)|
|2|[2. 実装方法1(For文を2回回す)](#2-実装方法1for文を2回回す)|
|3|[3. 実装方法2(mapを使用する)](#3-実装方法2mapを使用する)|
|4|[4. 最後に](#4-最後に)|

# 1. 概要
本記事では、以下に示すような「__あるクラスの人たちの1学期から3学期までのテストの結果が入力されたCSVデータ__」があります。
このデータのある特定のキー(__ID(出席番号), 名前, 性別__)が一致する場合は点数を合算した結果を表示することを想定します。
“`: あるクラスの人たちの1学期から3学期までのテストの結果が入力されたCSVデータ
ID(出席番号),名前,性別,国語,数学,英語
“001”, “佐藤太郎”, “男”, “60”

元記事を表示

Javaの基本 数値 文字列の連結

皆さんこんにちは。
正月でも日々の学習は忘れてはいけません。めでたい気持ちは忘れずに、
めでたい気持ちで、学習していきます。
では、
javaの基本的、てか、超超超初歩の動かし方から

***こんなことからかよwwwww***

と思いますが、そうなんです。
こんなことからやっていくんです。

正月に、集中してPCに向き合ってる背中に家族(嫁、小2女子1)の視線が突き刺さってるので、
さっさとやっていきますね。

“`java
System.out.println()
“`
()内に、文字を入力すれば、その文字がコンソールに表示される。
“`java:Main.java
System.out.println(“Hello world”);
“`
“`text:java:コンソール
Hello world
“`
と表示される。

“`
System.out.println()
                ↑ ↑ ↑ ↑ ↑
()内の文字列を出力しなさい!
“`
と言う命令をしています。

あと()の後、文末にセミコロン

元記事を表示

Gradle×springbootアプリケーションをdockerイメージ化してコンテナ起動する

# 結論
`./gradlew bootBuildImage`

`docker run -it -p 8888:8888 sample-rest-controller:0.0.1`

# 説明
`./gradlew bootBuildImage –imageName={イメージ名}:{バージョン(X.X.X)}`でイメージ作成可能。とってもかんたん。
(少し時間かかる場合がある)

“`bash
./gradlew bootBuildImage –imageName=sample-rest-controller:0.0.1

(略)

Successfully built image ‘docker.io/library/sample-rest-controller:0.0.1’

BUILD SUCCESSFUL in 3m 33s
5 actionable tasks: 3 executed, 2 up-to-date
“`

`docker image ls`すると、作成されたイメージが確認できる。
“`bash
docker image ls
REPOSITOR

元記事を表示

java学習開始します。

“`
初めまして。おじさんです。軽く自己紹介します。
今まで何も勉強せず、軽ーく生活しどうにかなるだろ精神で生きてきました。
ですが、あることをきっかけに読書にハマり、ITに興味を持ち、プログラミングを学ぼうと決意し、
プログラミングスクールに通うことにしました。学んだ内容は、
“`
**HTML
CSS
Ruby
Ruby on Rails
JavaScript
GitHub**

“`
ちなみに入学初めのPCレベルは、
“`
大学時代のレポートと卒論のみ…

“`
しかも10何年まえのことなんか覚えていません。
と、こんなもんです。
ですが、
“`
半年間くらいつき、汗水は垂らしてませんが半べかきながら
“`
なんとか最終課題を完成させ、
“`
**無事卒業!!!!!**
“`
本当に諦めなくて、よか

元記事を表示

Java実行ファイルを簡単にプロセス永続化

## はじめに
SpringBootでプロセスを永続化する方法は様々あると思いますが、無理矢理にですが簡単に永続化する方法があるのでそれを紹介します。
この方法は開発段階などで素早く永続化したい場合など以外には使用しないほうが良いかと思われます。
また、この方法はLinuxでsystemdを使うことを想定しています。

## 方法
まず、普通にSpringBootプロジェクトをビルドし、Jarファイルにします。
特殊なことは特にせず、javaコマンドで実行できる形になっていればなんでもいいです。

次にシェルスクリプトでJarファイルを実行してしまいます。
SpringBootにはJarファイルの時点で実行コマンドを埋め込むような仕組みがあるのですが、私の環境では機能しなかったのでシェルスクリプトを書いてしまったほうが早かったです。

“`shell
#!/bin/sh

DATE=`date ‘+%Y-%m-%d_%H:%M:%S’`
/opt/jdk-18/bin/java -jar `dirname $0`/run.jar > `dirname $0`/log_${DATE}.

元記事を表示

カスタムクラフターを作成したので中身の解説をする(Spigot)

# 初めに
Spigot で動作するカスタムアイテムクラフターを作成しました。
どのような仕組みになっているのかを公開し、より良いクラフターを作成してくれる方が現れれば良いなと思いこの記事を作成することにしました。

# 動作イメージ

# GitHub
https://github.com/Sakaki-Aruka/custom-crafter

# 解説
## オブジェクト
– MultiKeys:2つの整数値を持つ。
– MaterialKeys:MultiKeysをキーに、ItemStackを値に持つMap
– OriginalRecipe:完成品、サイズ、合計アイテム数、レシピ名、RecipeMaterialを持つ
– (MultiOriginalRecipe):未使用

MultiKeysはレシピにおけるアイテムの位置を示す座標として使用しています。
(横軸x、縦軸y、x軸右向き正、y軸下向き正としたxy平面の座標)
## 作成可能なアイテム
– config.ym

元記事を表示

SearchViewでソフトキーボードを非表示にする

AndroidアプリでActionBarにSearchViewを実装する際のソフトキーボードを非表示にする方法は、以下の通りです。
今回は、Fragmentに

## レイアウトファイル
“`menu/search.xml


【Mac】2行でJDKバージョンを切り替える

# 結論
“`bash
export JAVA_HOME=`/usr/libexec/java_home -v “17”`
PATH=$JAVA_HOME/bin:$PATH
“`

## version確認
“`bash
java –version
openjdk 17.0.4.1 2022-08-12 LTS
OpenJDK Runtime Environment Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS, mixed mode, sharing)
“`

# 補足
– `/usr/libexec/java_home -V`でマシン内にインストール済みのJDKのJAVA_HOMEを一覧表示できる。
– `/usr/libexec/java_home -v “{バージョン番号}”`で指定したバージョンのJDKのJAVA_HOMEだ

元記事を表示

新卒文系SEクイックソート書いてみた

基本情報技術者の擬似言語の学習のため実際にプログラム化してみました。
基本情報の問題集をもとにフローチャートを作成し、コーディングをおこなっております。
今回は、配列の最初の要素と隣の要素を比較し、大きい方を基準値にしております。

“`java:Qiita.java
import java.util.*;

public class QuickSort_2 {
public static void main(String[] args) {

/*
* テストデータ
*
* [3,5,8,4,0,6,9,1,2,7] ok
* [7,7,7,7,7,6,9,1,2,7] ok
* [0,0,0,0,0,0,0,0,0,0] ok
* [80,70,60,50,40,30,20,10] ok
* [70,60,40,70,30,70,50,70] ok
* [80,60,40,70,30,10,50,20] ok
* [80,60,40,70,30,10,50,20] ok

元記事を表示

初級SEの年間資格取得チャレンジ

もうすぐで2022年が終わりますね…:partly_sunny:
年々、一年過ぎるのが早く感じるアラサーSEです。

実は私、他業種からSEに転職したのですが、
現場で感じたことは
「**分からないことがわからない…**」です。

指示があればコーディングや設計はできるが、
なんとなくこなせているだけではないのか…?

なんて疑問が頭をよぎることが多かったので、
とりあえず、今できるだけ多くの知識と今までの経験の紐づけも兼ねて
年間最多資格取得に挑戦しました!!!

以下私が今年一年とった資格になります。
:apple:**Oracle MASTER Silver SQL**
:apple:**ORACLE MASTER Bronze DBA**
:apple:**AWS Certified Cloud Practitioner**
:apple:**Python 3 エンジニア認定基礎試験**
:apple:**Oracle Certified Java Programmer, Gold SE11**
                        計**5**つ
(思

元記事を表示

未経験から転職して半年が経とうとしてますが、以下が通読してる書籍一覧になります。

JavaSE11 Silver
JavaSE11 Gold
Java入門実践編
サーブレット&JSP入門
Eclipseパーフェクトガイド
新しいLinuxの教科書
Spring徹底入門
JUnit実践入門
良いコード/悪いコードで学ぶ設計入門
Silver DBA

元記事を表示

「良いコード/悪いコードで学ぶ設計入門 」のコレクションの章を勉強

# コレクションに関する設計技法

7.1わざわざ自前でコレクション処理を実装してしまう
7.2ループ処理中の条件分岐ネスト
7.3低凝集なコレクション処理
について、自分なりにサンプルソースを書きながら勉強しました。

国をコレクションとして扱い、各ランキングを出力するサンプルソースを実装しました。(国のデータは末尾の参考サイトを参照)

“`java:データクラス
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class Country {
private int index;
private String jpName;
private String enName;
private int population;
private int area;
}
“`

国クラスは、和名、英名、人口、面積をもちます。続いて、この国クラスを使って世界各国を作成するデータクラスです。

国のコレクションを作

元記事を表示

Java、Python、JavaScriptでよく使われる構文や機能を比較した表

## Java 、 Python 、 JavaScriptでよく使われる構文や機能を比較した表

| Java | Python | JavaScript |
|——|——–|————|
| `public class` | `class` | `class` |
| `class` | `class` | `class` |
| `public static void main(String[] args)` | `def main():` | `function main()` |
| `System.out.println()` | `print()` | `console.log()` |
| `int` | `int` | `number` |
| `double` | `float` | `number` |
| `boolean` | `bool` | `boolean` |
| `char` | `str` | `string` |
| `String` | `str` | `string` |
| `true`/`false` | `

元記事を表示

[Spring]リクエストパラメータ・パスパラメータのバリデーションを行う

## 前提

Spring Frameworkを用いたWebアプリケーションで、リクエストパラメータ・パスパラメータ文字列のバリデーションを行いたい。

## 対応

まず、クラスに `org.springframework.validation.annotation.Validated` アノテーションを付与する必要があります。

その上で、リクエストを受け付けるメソッド( `recordContentPost()`)のリクエストパラメータに `@Size(min=1, max=10) @Valid`のように `javax.validation` パッケージのアノテーションを付与します。

下の例ではリクエストパラメータを使用していますが、パスパラメータを使用した場合にも同様に使用できます。

“`java
//(省略)
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validati

元記事を表示

Javaで何か作ってみる(2022/12/20 Day61)

## 今日やった事
– Springの動画教材を見た。(**オブジェクト指向を復習しておきましょう** まで見た。)
– Macに、VSCode + Spring Boot環境の構築を始めた。
## 参考にしたもの
– [Spring 入門 ~ SpringBoot 2 を使ってお問い合わせアプリとToDoアプリを作る ~](https://www.udemy.com/course/java_spring_beginner/)
– [【簡単】VSCode+Spring Bootアプリケーション開発手順 | こへいブログ](https://kohei.life/spring-vscode/)
## 所感
– VSCodeで拡張機能までのインストールまでは出来た。
– Spring Bootの使い方については、本当これから。

## 明日の予定
– 引き続き、動画教材を進めていく。
– 併行して、VSCode + Spring Boot環境の構築を進めていく。

## ※2022年12月29日追記
– 以下の理由により、今回で、Java、Springの勉強を一旦終了する。

元記事を表示

Spring Boot 依存関係について

## はじめに
今回は、Spring BootでのWEBアプリケーション開発で、最低限の必要になる依存関係について書いていきます。

## 依存関係とは
Spring Bootで開発を進める上で、様々な機能を提供してくれるものです。
今回はGradleを使っていきます。

## 最低限必要になる依存関係
こちらの機能があれば、簡単なWEBアプリケーションが作れます。
ざっくり説明していくとこんな感じです。

|依存関係名| 機能説明 |
|:–:|:—:|
|Spring Boot DevTools|開発用の機能を提供するライブラリ。アプリケーション起動中にコードを編集した場合に自動的に反映するホットリロードを使用するために導入する。|
|Lombok|Getter/Setterなど機械的に作成するメソッドをアノテーションのみで自動生成するライブラリ。単純作業になるコードを削減するために導入する。|
|Spring Web|WEBアプリケーションを開発するために必要な機能を提供する。WebAPI開発には必須。|
|Spring Data JDBC|RDBMSに接続するために必要な

元記事を表示

Database Rider 使い方メモ

# Database Rider とは
– DBUnit をもっと使いやすくするライブラリ
– アノテーションで初期データや期待値のデータファイルを指定できる
– YAMLやJSONなど、 DBUnit でサポートされていないデータセットが用意されている

# Hello World
## 実装

“`text:フォルダ構成
|-build.gradle
`-src/test/
|-java/
| `-sandbox/dbrider/
| `-HelloDatabaseRiderTest.java
`-resources/
`-sandbox/dbrider/
|-hello.yml
`-hello-expected.yml
“`

“`gradle:build.gradle
plugins {
id “java”
}

sourceCompatibility = 17
targetCompatibility = 17

[compileJava, compileTestJava]*.options*.encoding

元記事を表示

Word文書で表を作成または読み取る方法【Java】

Microsoft Wordの表は、データを表示するための便利なツールです。大量のデータを行と列のグリッドを使って並べることができるので、読者はより簡単に読み、分析することができます。この記事では、[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)ライブラリを使用して、Javaで**Word文書内の表を作成したり、読んだりする方法**を紹介します。
– **[Word文書に表を作成する](#word文書に表を作成する)**
– **[Word文書内の表を読み込む](#word文書内の表を読み込む)**
## 【依存関係の追加】
この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。
### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

元記事を表示

OTHERカテゴリの最新記事