JAVA関連のことを調べてみた2021年12月18日

JAVA関連のことを調べてみた2021年12月18日

もう怖くないSpring × Junit5 ~中編~

[もう怖くないSpring × Junit5 ~前編~](https://qiita.com/sho-yamashita/items/eb1dad4139b322ca722f)からの続き

## JUnitのいろんな機能
### 例外の検査
例外のチェックが簡単にできます
![もう怖くないspring×Junit5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263851/3ca43357-c0a6-813f-251d-67b566c8ba3a.png)
### 複数の値で同じテストする(パラメーター化テスト)
複数のテストを作らなくても一つのテストで境界値テストできます
![もう怖くないspring×Junit5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263851/9bcfeb20-15e1-3e89-7ede-2794f4b68f45.png)
![もう怖くないspring×Junit5.png](http

元記事を表示

ソフトウェア演習D:NetBeans12.5でjsonを使えるようにする

こんにちは岩手県立大学とか、岩手の人たちAdvent Calender18日目の記事です。

先日、ソフトウェア演習Dの課題でGsonを利用してjsonを使いました。
個人的にGsonを導入するのに詰まったので、NetBeans12.5にGsonの導入について書きたいと思います。

## NetBeansにGsonを導入する
### Gsonとは
Gsonとは、Googleが提供するライブラリでJSONデータとjavaオブジェクトを変換することができます

Gsonライブラリの使い方:https://sites.google.com/site/gson/gson-user-guide#TOC-Overview
Gson GitHub:https://github.com/google/gson

#####今回使用するGsonは外部ライブラリなので以下の手順で追加する必要があります。

注意:私の環境では日本語化プラグインを入れていないので`日本語(英語)`で表記しま

元記事を表示

TALON(ローコード)でSAP S/4 HANAとPostgreSQLを連携して業務システムをサクッと作ってみた

この記事は [CData Software Advent Calendar 2021](https://qiita.com/advent-calendar/2021/cdatasoftware) の17日目の記事です。

#はじめに

こんにちは、株式会社HOIPOI 代表取締役の古関と申します。ローコード開発ツールTALON(タロン)という製品を開発・販売しています。CData社とは2017年にお付き合いが始まりました。最初に製品を知った時、TALONとCDataドライバの相性の良さに驚いた記憶があります。現在もTALONを使っているお客様からは色々なドライバの利用希望を頂いています。

今回はTALON上で、CDataドライバを使ってSAP S/4 HANAと、PostgreSQL14を連携して業務システムチックな物をサクッと作ってみました。
SAPと直接連携するとなるとかなり敷居が高いイメージですが、想像よりもはるかに簡単に出来てしまったのでポイントを含めて書いていきます。

今回紹介する製品は全て無料で試せますので是非チャレンジしたい人はやってみて下さい!
※SAP S/4 H

元記事を表示

Keycloak に独自の REST API を追加する

## はじめに

Keycloak には拡張機能を配置することで独自の REST API を追加できる仕組みがあります。
公式リポジトリにあるサンプルで拡張機能のビルド・デプロイの一連の流れを試したので、その手順を紹介します。

## 環境

“`zsh:terminal
% mvn –version
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /usr/local/Cellar/maven/3.8.4/libexec
Java version: 17.0.1, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk/17.0.1_1/libexec/openjdk.jdk/Contents/Home
Default locale: ja_JP, platform encoding: UTF-8
OS name: “mac os x”, version: “11.2.3”, arch: “x86_64”, family: “mac

元記事を表示

JavaBeansについて

この記事は、[シアトルコンサルティング株式会社 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/seattleconsulting)の18日目の記事です。
こんにちは、シアトルコンサルティングの小泉です。
##はじめに
今回はJavaBeansについてまとめました。
実務の中でBeansを使用する中でBeansの役割って何なんだろうと疑問に思い調べてまとめてみました。

##ゴール
JavaBeansの役割について理解できるようになる。
## JavaBeansとは
JavaBeansとは、Java言語で再利用可能な部品(モジュール)化されたプログラムを作成するための仕様。また、その仕様に則って開発された部品化されたJavaプログラム(略してBeanとも呼ばれる)。※IT用語辞典より

簡単にいうと、データを保存しておくための倉庫のようなものです。
例えば、ユーザーから送られてきた氏名や年齢などの情報を個人ごとにそれぞれ整理して保存しておくための仕組みがJavaBeansです。

## JavaBeansの3

元記事を表示

JavaはWordで脚注と文末脚注を読む方法

脚注は文章の内容を補充し説明するときに役に立ちます、Wordを使用している中よく見える機能の一つです。今回の記事はWordで脚注と文末脚注を読む方法を紹介します。
注:この記事では、Wordライブラリー(Java Free Editionの場合はFree Spire.Doc)を使用して読み取ります。公式Webサイトからライブラリーを**[ダウンロード](https://www.e-iceblue.com/Download/doc-for-java-free.html)**し、ファイルを解凍して、JavaプログラムをlibフォルダーのSpire.Doc.jarにインポートできます。または、Mavenリポジトリを介してインストールおよびインポートします。

jarインポートの効果は次のとおりです。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/68131eee-3be4-4344-f9de-1cb555feab80.png)
テストドキュメントは、脚注と文末脚注を含めて次のとおりです

元記事を表示

AtCoder004をやった(Java)

AtCoder004をやった。
C問題のちに追記予定。。。間に合わない、いろいろと。

##[A](https://atcoder.jp/contests/abc004/tasks/abc004_1)
借金の算出方法を参考に実装

“`java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
Scanner scan = new Scanner(System.in);
ArrayList list = new ArrayList();

System.out.println(scan.nextInt() * 2);
}
}
“`

##[B](https://atcoder.jp/contests/abc004/tasks/abc004_2)
180度回転させたときの状態

元記事を表示

Minecraft:Bedrock Editionのパケットを解析するためのクライアントソフトウェアを開発した話

はじめましてHmy2001です。

**約3年前**にMinecraft:Bedrock Editionのパケットを解析するためのクライアントソフトウェアを
開発したのですが、そこでいろいろあったことを紹介したいと思います。

クライアントソフトウェアはJavaで開発し、[GitHub](https://github.com/hmy2001/MCBEClient)にて公開されています。

https://github.com/hmy2001/MCBEClient

#Minecraft:Bedrock Editionのパケット
Minecraft:Pocket Edition v0.15.0 alpha (リリース日時:2016年6月 **とても昔!**)から
パケットの暗号化機能が追加されました。
楕円曲線暗号とAESアルゴリズムを用いています。

楕円曲線ディフィー・ヘルマン鍵共有(ECDH)でお互いの公開鍵を共有し、
得られた共有鍵を用いてAESアルゴリズムでパケットを暗号化し通信するといった感じです。

#Javaの採用
楕円曲線暗号とAESアルゴリズムが言語ライブラリでサポー

元記事を表示

Apple Silicon M1でMacOSDnsServerAddressStreamProviderがロードできずエラーとなる

# はじめに
KINTOテクノロジーズでは開発端末としてWindows、Macを選択することができ
Macに関してはIntelチップ搭載のMacBook Proが貸与されます。

2021年はApple M1 Pro、Maxチップ搭載のMacBook Proが発売されたこともあり
開発端末にApple Silicon M1が増えることに開発者一同熱い眼差しを向けています。

今回は開発端末の選択肢に増えるであろうApple Silicon M1の技術検証時に発生したエラーのお話です。

# 事象
KINTOテクノロジーズのいくつかのシステムではSpring Boot 2.5.0が利用されています。
今回技術検証をしたシステムは、テストコード内で外部サービスのAPIを利用する部分でテスト効率化のために
Spring WebFluxを利用していました。

Spring WebFluxではデフォルトでNettyが利用されますが、Spring Boot 2.5.0ではバージョンを指定しない場合、
io.netty:netty-resolver-dns-native-macos:4.1.63.F

元記事を表示

マイクロサービスをdatadogで分散トレースする

この記事は [ZOZO #4 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo) 17日目の記事になります。

今回はマイクロサービスのdatadogの分散トレースに挑戦したのでそれについて記載しようと思います。

構成は以下になります。

|![Untitled Diagram.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645177/c4d608de-cd9a-dbaf-c420-5a9036df169b.jpeg)|
|:-:|

処理の流れは以下になります。

1. Classic ASPからJava API【A】の登録APIを呼ぶ
1. Java API【A】はDynamoDBに処理開始のレコードを登録する
1. Java API【A】はKinesis Data Streams(以下、KDS)に登録情報を渡す
1. Java API【B】はKDSから情報を取り出し、処理を行う
1. Java A

元記事を表示

Javaを使って四角形をキーボード入力で動かしてみた

#はじめに
この記事はこの記事は、[SLP KBIT AdventCalendar2021](https://adventar.org/calendars/6706) 17日目の記事です。
Javaを使って画面に映した図形をキーボードからの入力で動かす処理を作ってみました。

Javaで2Dゲーム作ってみたいなと思い、とりあえずキーボードでキャラクターを動かせるようにしてみようという経緯で作りました。

#目次
[・プログラムの作成](#プログラムの作成)
[・コード](#コード)
[・まとめ](#まとめ)

#プログラムの作成

##環境
Java 16
Eclipse 4.19.0

##機能
画面に表示した四角形をキーボードの[W][A][S][D]で動かします。

#コード
“`Java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;

元記事を表示

Apacheのhttpclientを利用してServiceNow REST API( Table API)をJavaでたたく方法

# 前記事
https://qiita.com/seino-ta/items/fe04d5cf71f126583774

ここではJavaのプレーンなものでGETを実行しました。

# Apacheのhttpclientを利用してGETを実行

“`Java
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;

public class

元記事を表示

Spring Bootで簡単なWebアプリを作ってみたい!【CRUD処理を実装】

# 【はじめに】
この記事は[【マイスター・ギルド】本物の Advent Calendar 2021](https://adventar.org/calendars/6579)の12日目の記事です。
ためになる技術的な記事から、猫ちゃんに癒やされる記事、健康オタクになれる記事まで、バラエティに富んだ記事が投稿されているので、ぜひチェックしてみてください!

# 【経緯】
こちらの記事は前記事の[Spring Bootで簡単なWebアプリを作ってみたい!【準備からGet・Post表示まで】](https://qiita.com/takuch/items/3dc30caf45af06a01f41)の続きになります。
Javaの入門書である「スッキリわかるJava入門」を読み終わったので、なにかWebアプリを作ってみたいと思ったのがきっかけです。
ちょうど業務でSpring Bootが使われていたので勉強を始めたのですが、チュートリアルが少なく苦労しているので、備忘録的にまとめようと思っています。
この記事だけで、CRUDの実装はできるようになっていますが、前記事で説明した内容は省略していま

元記事を表示

Visual Studioでのgetter/setter一括追加のJavaショートカット

変数を右クリックして`ソース アクション`を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31063/f374a201-84c7-80a7-eb9e-8d1c52cf9a39.png)

`Generate Getters and Setters`を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31063/0a94364e-9c70-d194-901a-60a36169bff0.png)

Getter/Setterを追加したいフィールドを選択して `OK`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31063/98abb5bc-3ae8-e0ab-e510-4c3674c55adc.png)

別のIDEを使っているけど、最近というか今日他の言語の開発では使っているVis

元記事を表示

AtCoder003をやった(Java)

AtCoder003をやった。
~~C問題解けそう、後で追記しよう。~~
C問題解けた!

##[A](https://atcoder.jp/contests/abc003/tasks/abc003_1)
さいころの大きさは与えられた入力値分の面があるということ、
各面の金額は、面番号 * 10000(円)

“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
Scanner scan = new Scanner(System.in);
ArrayList list = new ArrayList();

list.add(Integer.parseInt(scan.nextLine()));

double kyuryo = 0;

元記事を表示

もう怖くないSpring × Junit5 ~前編~

# はじめに
テスト?なにそれ、美味しいの?
テスト?俺の実装完璧だし。テストなんていらん。
テスト?Junit?なんかコワイ。。。((((;゚Д゚))))ガクガクブルブル

っていう人もそうでない人もJunitと触れ合いましょう。

## テストクラスの作り方
eclipseの例
### 1.作りたいテストを選ぶ
![20190725もう怖くないspring×Junit5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263851/95e73472-c4f3-d348-f9b9-4d6ae8835f2c.png)

### 2.テスト作るウィザード立ち上げる
![もう怖くないspring×Junit5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263851/03fc3588-24e5-6a16-a2b1-524cb4c3a223.png)

### 3.テストフォルダを選択する
![もう怖くないspring

元記事を表示

【Spigot】魔法を作る

この記事は [Minecraftサーバ開発・運営 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/minecraft-server-dev) – 16日目の記事になります。

# 概要

Minecraft Java Editionのサーバーソフトウェアとして最も有名なSpigotで動作するプラグインで簡単な魔法を実装する記事になります。

# 設計

今回作るプラグイン 『MagicPole』 の設計はこんな感じで立ててみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666481/4f977125-c873-ee94-87ff-938f7c9712d3.png)

“`md
・コマンドではなく専用のクラフトレシピを用意する
・魔法の詠唱には10秒のディレイを用意する
・魔法を使うにはマナ、もとい満腹度を要求する
・魔法を詠唱すると **HPブースト・スピード** が付くようにする
“`

また要件

元記事を表示

クイックスタート WildFly

#はじめに

Advent Calendar 16日目です。
[2018年末のAdvent Calendar](https://qiita.com/advent-calendar/2018/nri-openstandia)にWildFly の記事を書いてから3年が経ちました。

https://qiita.com/tama1/items/829be5aacd81637ae73a

その時に使用したのが WildFly-14.0.1.Final で、2021年12月1日現在の最新バージョンは WildFly-25.0.1.Final なので、3年の間に11もバージョンが上がったことになります。

その間、どのような変化があったか、ざっと挙げてみると以下のようになっています。見出しレベルでしか書きませんので、詳細を知りたい方は公式サイトのリリースノートを見てください。

:information_source:長くなるので折りたたんでます。▲をクリックすると広がります。

WildFly更新履歴概要
WildFly-1

AWS SDK for Javaのバージョンごとのクライアントの設定

[ZOZO Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo) の16日目の記事です。

# AWS SDK for Java
AWS SDK for JavaにはAWSのサービスを利用するためのJava APIが用意されています。

その中で接続タイムアウトやリクエスト再試行などのクライアントの設定を変更することができます。
AWS SDK for Javaには、バージョン1(v1)とバージョン2(v2)があり、アップデートする際に使用するそれぞれのバージョンの主なクラスとメソッドの対応をまとめました。

# v1、v2オプション対応表
以下のようにメソッドチェーンを使用して設定することを想定しています。

“`
new ClientConfiguration()
.withConnectionTimeout(connectionTimeout)
.withClientExecutionTimeout(clientExecutionTimeout)
.withRequestT

【Java】設計未経験者に読んでほしい「千鳥格子模様」の作り方3選

# はじめに
最近まともにプログラミングをしておらず、Javaの使い方や勘どころを思い出す目的で
リハビリのために簡単な模様を作ってみます。

## ■この記事のターゲット
– プログラミング経験はある程度経験あるけど設計は未経験

そんな方に向けた記事です。

この記事では目新しい技術はありませんが、
どのように作るか、なぜそう作るかに着目しながら模様の作り方を書いていきます。

※前置きが長いのでソースと結果だけサクッと見たい方は[「準備」](#準備)から読み進めてください。

## ■この記事を通して伝えたいこと

– 重要なのは目的に合ったやり方ができているかということ
– 設計をする場合は特に、「何をするか」ではなく「なぜそうするか」を考えてほしいということ

本記事を通して、これからシステム開発をしていく中での
設計の進め方やマインドセットの部分で少しでも参考になれば幸いです。

## ■「千鳥格子模様」とは?
↓↓こんな模様↓↓
![図1_千鳥格子B.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co