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

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

Spring Security 5.7に対応したJPAベースのログイン認証とユーザ登録 (+バリデーションチェック)

# 目次
[1. はじめに](#1-はじめに)
[2. プロジェクトの作成と準備](#2-プロジェクトの作成と準備)
[3. ユーザ登録機能](#3-ユーザ登録機能)
[4. ログイン認証機能](#4-ログイン認証機能)
[5. まとめ](#5-まとめ)

# 1. はじめに
Spring Secutiry 5.7でセキュリティ設定の記述方法が大幅に変わりましたが、5.7かつJPAをベースとしたログイン認証のサンプルが見当たらなかったので、紹介したいと思います。

**※本記事の内容は、ある程度Springやデータベースの知識がある前提です。**

また、この記事を書くにあたって下記のサイトを参考にさせていただきました。
特に2つ目のサイトは、Spring初学者の方でも一からアプリケーションを作成できるような内容となっていますので、ぜひご覧ください。

参考サイト1: [最新の5.7で学ぶ!初めてのひとのためのSpring Security](https://www.docswell.com/s/MasatoshiTada/KGVY9K-spring-security-int

元記事を表示

Play Frameworkで作成したアプリケーションをIBM Cloud Code Engineにデプロイしてみる

# はじめに
前回の記事でIBM Cloud Code Engineにサンプルアプリケーションをデプロイしましたが、今回は自作のアプリケーションをデプロイしてみようと思います。アプリケーションはコンテナになっていればどんな言語やフレームワークを使ってもいいはずなので、今回は(あまりネット上にも情報がなさそうだった)Play Frameworkを使ったアプリケーションをデプロイしてみようと思います。

# Play Frameworkとは
Play Frameworkとは、[公式サイト](https://www.playframework.com)によると

> The High Velocity Web Framework For Java and Scala

とのことです。日本語だと *JavaとScalaを使った高速ウェブアプリケーションフレームワーク* といったところでしょうか。私はJavaの経験が長いので今回はこちらのフレームワークを選んでみます。

# Dockerを使った開発

Play Frameworkを動かすには[Javaはもちろんsbtが動く環境](https:

元記事を表示

【備忘録】Spring bootのDockerイメージを作成し、Docker上で動かすまでの方法

# はじめに
Spring bootアプリケーションをコンテナ化したいと思ったときにやったことを備忘録として書き残しておきます。

# 前提
– Spring bootアプリケーションは既に作ってあるものとする
– Dockerの基礎知識がある
– Docker hubのアカウントを作っている

本題のみにフォーカスした記事にするため、このような形にしています。ご承知ください。(他の方の記事を参照ください)

# Spring bootのDockerイメージを作る
方法は2つあります。
1. Cloud Native Buildpacksを使う
2. Dockerfileを使う

本記事では1つ目の方法を使います。
コマンドプロンプトを開いて以下の通り進めてください。
“`
cd [アプリ化したいプロジェクトのフォルダのパス]
mvnw spring-boot:build-image -Dspring-boot.build-image.imageName=[docker hubのユーザ名]/[任意のimage名]:[tag]
“`
これだけで簡単にDockerイメージが作れてしまい

元記事を表示

GraphQL Java Kickstartを使用したWebシステムで認証トークンをCookieに格納する

[Spring for GraphQL](https://spring.io/projects/spring-graphql)(名称がSrping GraphQLではないんですね。今気づいた。)も今年バージョン1.0がリリースされ、知らぬ間にNetflixから[DGS](https://netflix.github.io/dgs/)もリリースされてたり、Java界隈のGraphQLフレームワークもにぎやか(?)になってきました。自分はSpring Bootを中心にアプリケーション開発をしているので、将来的にはSpring for GraphQLが本命かなと思うのですが、現時点ではGraphQL Java Kickstartに一日の長がある認識です。

* 特にGraphQL Java Kickstartだと、schemaファイルとJavaの実装で相違があると、起動時にエラーを吐いてくれるのが助かります。

そのGraphQL Java Kickstartを使用してWebアプリケーションの認証ですが、最初はサーバ環境が潤沢な社内システムだったので、Keycloakで認証させました。フロン

元記事を表示

JavaのSound sampledについて

# 概要
Javaでシンセサイザーを作ることを目標にします。
付ける機能は

* キーボードとドレミファソラシドを紐づけて、ピアノのようにする
* 波形(サイン・のこぎり・矩形)
* エンベローブ(減衰)
* フィルタ(音色)
* モジュレーション(周期的な変調)
* リズムの定型を複数用意して繰り返し流す(ドラム)
* 和音・コード入力
* 録音+繰り返し
* ハイゲイン(ギター)
* リバーブ
* 波形・FFT表示
* 繰り返し等を使う場合、楽譜と現在位置の表示

を目標にします。私自身、まったく音楽をやったことも詳しくもないので、そこも知っていきたいです。

シンセサイザーの機能の解説はこちら

https://kensukeinage.com/synth_structure/

JavaでPCM(パルス符号変調)で記述した音データを再生する方法は

http://k-hiura.cocolog-nifty.com/blog/2011/07/java-6e01.html

こちらを参考にしました。

http://muimi.com/j/game/sound/

はAPIの概略が

元記事を表示

カート動いた

取り急ぎ動いたので送っておきます。

1,フィールド追加
Item.java(Beanbs)

2,新規作成ファイル
Cartitem.Java(Beanbs)

3,Post記述追加
CartServlet.Java

4,新規作成ファイル
cartLogic.java

5,新規作成ファイル
CartDAO.Java

6新規作成ファイル
cartCheck.jsp

フィールド追加
Item.java(Beanbs)

package model;

public class Item {
private String category;
private String name;
private String explanation;
private String image_path;
private String image_path2;
private String image_path3;
private int price;
private int quantity;
private int cart_quantity;//追加*カートに入っている

元記事を表示

ABC245A~Dの解答[Java]

## はじめに
入力のみ、提出時から変更してあります。他はなるべく提出時のままの方針です。

コンテスト中にはA,B,Dが解けました。Cはコンテスト後です。
では、見ていきましょう。

## A – Good morning
問題文は[こちら](https://atcoder.jp/contests/abc245/tasks/abc245_a)

if文で書いてみましょう。
まず、A>Cならば青木君が、AD(すなわち青木君の方が早く起きるとき)のみで分岐すれば良いです(同時刻なら高橋君の方が早く起きるので>に=は付けません)。
“`A.java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);

//値の受け取り
int A = sc.nextInt();
int B = sc

元記事を表示

文字の出力その他

# 文字の出力
[前回の記事](https://qiita.com/K_miyuu/items/4a206eba40e44d574721 “文字を表示してみる”)にもあるように、文字列の場合は「” ”」でかこってあげます。

■改行について
System.out.println(“今日も良い天気です”);
System.out.print(“今日も良い天気です”);
→ln(LN)を削除すると、改行がなくなります。
![Eclips初期設定13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730862/c0515072-f6e2-35fa-c99a-8ceb7031c42e.png)
![Eclips初期設定14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730862/7696c811-2619-ab39-d76d-ea0c43b974f5.png)

:::note info
エスケープシーケンスについて

元記事を表示

開発授業中にエラーで詰まったことリスト

# 開発環境
+ spring-boot-2.7.0
+ thymeleaf-3.0.15.RELEASE
+ jackson-2.13.3
+ h2-2.1.212
+ log4j-slf4j-impl-2.17.2
+ jakarta-annotation-api-1.3.5
+ jakarta.validation-api-2.0.2
+ lombok-1.18.24

## アノテーション
@NotNullとか同じ名前、似たような名前がありますがそれぞれ動作が異なります。
コンパイル時に値を確認する条件分岐を追加するものもあれば、コーディング時にnullになる可能性がありますとか。
+ [nullじゃない三銃士](https://takeda-san.hatenablog.com/entry/2018/05/30/235154)

## 自動生成でSQL文生成を利用
**インターフェースクラスに@Repositoryを付与すること**

save()メソッドの仕様
※自動採番採用している場合だけど
主キーがnullの場合は自動採番をしてテーブルに挿入される
nullじゃない場合

元記事を表示

Helidon 3.0をHelidon Starterを使って最速で試す

# はじめに

先日、Helidon3.0がリリースされました。
Javaのクラウドネィティブ向けフレームワークであるHelidonですが、メジャーバージョンアップを繰り返しており、3.0到達です。

Helidonチームのリリースブログの日本語翻訳版はlogicoさんにより早速公開されています。

– Helidon 3.0 is released

https://logico-jp.io/2022/07/28/helidon-3-0-is-released/

その中でHelidon Starterも紹介されておりましたので、こんなに簡単に試せるというところを紹介したいと思います。

自分自身は過去にMicorProfileのStarterは試したことがあったのですが、Helidon独自で作られている方は知らなかったので、今回試したいと思います。

– 過去記事ご参考:Eclipse MicroProfileの始め方

https://qiita.com/omix222/items/923d788d6ce76e179d6a

# 環境

以下環境の環境で試しました。JavaとMa

元記事を表示

ABC246A~Cの解答[Java]

## はじめに
提出時のコードの入力受け取りのみ書き換えてあります。

では、見ていきましょう

## A – Four Points
問題文は[こちら](https://atcoder.jp/contests/abc246/tasks/abc246_a)

長方形なので、(x1,y1)、(x1,y2)、(x2,y2)、(x2,y1)の四点で構成されています。
したがって、x座標、y座標それぞれを比較して、ペアになっていない値を出力すれば良いです。
“`A.java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);

//それぞれの座標を記録する
int[] xy1 = {sc.nextInt(),sc.nextInt()};
int[] xy2 = {sc.nextInt(),sc.nextInt()};
int[] xy3 = {sc.nextInt(),sc.nextInt()};

/

元記事を表示

文字を表示してみる

[前回書いた記事](https://qiita.com/K_miyuu/items/43dfd4700cabddcbb29e “はじめに~Javaを使う為のソフトダウンロードと初期設定~”)
# コンソールを用意する
Eclipsには「コンソール」という、プログラムの結果を表示する機能があるので、そこに文字を表示させてみます。
※画像の黄色で囲ったエリアがコンソールです。
※コンソールを表示方法は、「ウィンドウ」メニュー→ビューの表示→コンソール
![Eclips初期設定08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730862/3919724a-2657-ea15-74ba-2cd288129adf.png)

# なにかしらの値をJavaで表示させる方法
### コンソールに値を表示する呪文
文字を表示させる命令はよく使うので、下記の基本文を覚えてしまった方が早い。
(Systemクラスについて等、詳細は別途調べました。)
~~~ Java:FirstExample.java
System

元記事を表示

Eclipseの設定

## はじめに
個人的なEclipseやSTSの設定の備忘録を記載している。

## JREの設定
1. OpenJDKを下記からダウンロードする(OpenJDK11の場合)。
https://jdk.java.net/java-se-ri/11
1. ダウンロードしたZipファイルを展開する。
1. Eclipseの「ウィンドウ>設定>Java>インストール済みのJRE」を押下する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2637688/40abb237-89a5-186d-9a73-767880e93202.png)
1. 「追加」を押下する。
1. 「標準VM」を選択し、「次へ」を押下する。
1. 「ディレクトリー」を押下し、OpenJDKを指定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2637688/55f317bf-7d0e-4904-fb92

元記事を表示

はじめに~Javaを使う為のソフトダウンロードと初期設定~

# Eclipse
■Eclipseとは
統合開発環境です。
(無料ソフト)
 ※自分がどんなソフトが好きかはこのみの問題ですが、今回はEclipse使います。

https://mergedoc.osdn.jp/

Windowsか、Macかは自分のPCのOSにより判断します。
今回は、**Full Edition**の、すべてのパッケージが全部入りの**Ultimate**パッケージをダウンロードしました。

(注意)サイズがデカいので、PCの容量に注意が必要です。
 ※私の場合、PCの空き容量が不安でしたので、この際に不必要なデータを削除し、ドライブの最適化を実行しました。
## プロジェクトの作成
### プロジェクト作成
仮に、プロジェクト名を「01-01」として作成してみます。
![Eclips初期設定01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730862/a4d83f8c-6b1e-0678-ab0b-aa2abc64b8c2.png)

1. ファイルから、新規を選択します

元記事を表示

DJI Mavic 2 Pro を自作Androidアプリで自律飛行させる(1)~Android Studioの環境構築~

# はじめに
ドローンをAndroidアプリを使って制御する機会があり、アウトプットの目的も含めて投稿させていただきます。
大学の研究室にあるDJIのMavic 2 Proが使えたので、このドローンを自由自在にアプリ上で操作できるようにすることが目的です。
まだまだ勉強中なので、これを通じていろいろなことを身につけていきたいです。

どなたかのお役に立てば幸いです。

# ドローン
使用するドローンはMavic 2 Proです。
[DJI Mavic 2のサイト](https://www.dji.com/jp/mavic-2)

# 環境
– Android Studio Chipmunk | 2021.2.1 Patch 1
– macOS 12.1

※作成したアプリはAndroidのGoogle Pixel 5にインストールし、ドローンのコントローラとして使用します。

# 環境構築
### AndroidStudioのインストール
ここからインストールしました。

インストールの際には[

元記事を表示

プログラミング歴0ヶ月の人がJava Silver SE11に一発合格するシンプルな方法

## はじめに

配列?メソッド?なに?ってレベルから
Oracle Certified Java Programmer, Shilver SE11に一発合格する方法。
![スクリーンショット 2022-07-14 19.02.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1586473/d5d955ca-241f-bb7c-9bbd-008923cd23c6.png)

:::note
この記事の対象者 
未経験エンジニアや、
プログラミングまったくやったことない人までカバーする内容
:::

## 目次
[結論](#結論5秒でわかる)
[筆者のレベル](#筆者のレベル)
[IDEについて](#ideについて)
[やってはいけない学習法](#やってはいけない学習法)
[紫本はやるべきかどうか](#紫本はやるべきかどうか)
[トータル何時間かかったか](#トータル何時間かかったか)
[STEP 1 スッキリわかるJava入門とProgateをやる](#step-1スッキリわかるjava

元記事を表示

JUnit テストの記述方法

# はじめに
JUnit その3です。今回から実際にJUnitの内容に入っていきたいと思います。
まずは、JUnit5でのテストコードの記述方法についてです。
不備等あるかもしれませんがご了承ください。

# JUnitシリーズ 項目表
| NO     | タイトル |
| —- | ——————- |
| その1 | [JUnit 単体テストの概要](https://qiita.com/ryo0527/items/70550e0a556975a593f5) |
| その2 | [JUnit 環境の準備](https://qiita.com/ryo0527/items/135c2104a9af0eb795e9) |
| その3 | [JUnit テストの記述方法](https://qiita.com/ryo0527/items/7e85b3444fa9c975eecb) |

JUnit5を動かす環境の準備は、その2でおこなっています。

単体テストの概要については、その1に記載しております。
気になる方は、是非ご覧ください。

元記事を表示

[個人用]いくつかの用語整理


– **Iterable**
反復可能なオブジェクト。配列はiterableの代表的な例。

– **List**
配列の限界のために作られたデータ型。配列はサイズを決めなければならないが、サイズが予想できない場合が多いため、Listはサイズの指定なしで使えるよう作られた。Listはインタフェース(親クラス)、ArrayListはListの代表的な継承しクラスだ。

– **Mustacheの繰り返し文**
“`
{{#article}} {{!articleを繰り返す}}

{{id}}

{{!articleのfield}}

{{title}}

{{!articleのfield}}

{{{content}}}

{{!articleのfield}}

{{/article}}
“`

– **HTMLのaタッグ**
Hyperlinkをかけるタッグ

– **HTTP

元記事を表示

ABC261A~Dの解答[Java]

## はじめに
SimpleScannerによろしくない部分があったので書き換えました。もしコピペして使ってた人がいたら注意してください(そもそもそんな人がいるのか疑問ですが)。

今回もDまで解けたので(コンテスト中はCまで)、そこまで解説できたらなと思います。
それでは見ていきましょう。

## A – Intersection
問題文は[こちら](https://atcoder.jp/contests/abc261/tasks/abc261_a)

仮にL1 0であることがわかるかと思います(赤の範囲と青の範囲のうちより原点から遠い左端から、より原点に近い右端の範囲が二色で塗られている)。ということで、このとき出力するべき数値はmin(R

元記事を表示

22新卒が1か月勉強してJava SE Bronzeを受けてみた

## はじめに
今回、入社後の課題としてJava SE Bronzeを受験しました。
なんとかギリギリで合格したので記録と反省として記事を残します。
参考になるかはわかりませんが、暇つぶしに読んでいただけると幸いです。

## Java SE Bronze試験について
### 試験概要
– 試験名: Java SE Bronze
– 試験番号:1Z0-818-JPN
– 試験時間:65分
– 問題数:60問
– 合格ライン:60%
– 試験方法:CBTによる選択式
– 試験料:16,500円(税込)

Java資格の入門レベルです。
試験料が高めなので、落とすと再受験となり割と痛いです。
また、弊社では不合格の場合、試験料が経費精算できないため新卒からすると大赤字になります。

## わたしのスペック
– 22新卒でIT企業に入社
– 大学時代の専攻は情報系(笑)
– 入社して2年ぶりにコードを書いた
– Javaへの理解ほぼ皆無
– 集中力も皆無

## 学習期間と時間
– 6月28日から学習開始、7月23日に受験
– 学習時間は1か月×1~1.5時間程度(30時間くらい)
(平

元記事を表示

OTHERカテゴリの最新記事