- 1. Java コンストラクタ
- 2. [Cloud Storage API(V2)] JavaでCloud StorageのHMACキー情報を作成・更新・削除する
- 3. MockMvcではerror/404.htmlやerror.htmlをテスト不可能。その理由と代替策
- 4. クラス型 フィールド メソッド引数 戻り値
- 5. Eclipseのデバック入門
- 6. Javaアプリケーションサーバ一覧
- 7. [Cloud Storage API(V2)] Javaでオブジェクトをダウンロードする
- 8. Javaで「import文の使い方」の動作を確認してみた
- 9. Data Structure
- 10. [Cloud Storage API(V2)] JavaでCloud StorageのHMACキー情報を取得する
- 11. Java Silver SE11の個人的な要点4選
- 12. Cursorを使って、VSCodeの拡張機能を1日で作ったお話
- 13. [Cloud Storage API(V2)] Javaでオブジェクトのアクセス制御リスト(ACL)エントリを作成・更新・削除する
- 14. [Cloud Storage API(V2)] Javaでオブジェクトの保存(アップロード)・更新・削除する
- 15. Javaで「System.out.printlnとは」の動作を確認してみた
- 16. [Cloud Storage API(V2)] Javaでオブジェクトのアクセス制御リスト(ACL)エントリを取得する
- 17. [Java]List、Queue、Setのクラスメモ
- 18. SpringBootでデータベースによるログイン認証とパスワードハッシュ化(暗号化)
- 19. [Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)のIAMポリシーを更新する
- 20. SpringBootのThymeleafでEntityのForEach例外起きた時の対応
Java コンストラクタ
### フィールドの初期値
|型名|フィールドの初期値|
|:—:|:—-:|
|int型, short型, log型などの数値の型|0|
|char型(文字)|¥u00000|
|boolean型|false|
|int[]などの配列型|null|
|String型などのクラス型|null|¥は半角です(全角にしかならなかったです:cry:)
## コンストラクタ
クラスからオブジェクトを作成した際に、自動的に実行されるメソッド
“`Hero.java
public class Hero{
String name;
int hp;
public void attack(){
}
public Hero() {
this.hp = 100; // hpフィールドを100で初期化
}
}
“`
“`Main.java
public class Main {
public static void main(String[] args) {
Hero h = new Hero(); // インスタンス生成と同時にコンストラクタによってHPに100
[Cloud Storage API(V2)] JavaでCloud StorageのHMACキー情報を作成・更新・削除する
Cloud Storage API V2(Java)を使用して、
Cloud StorageのHMACキー情報を作成・更新・削除する方法
についてご紹介します。**HMACキーとは**
アカウントに関連付けられた認証情報の一種です。
HMACキーを使用して署名を作成すると、その署名がCloudStorageに対するリクエストに組み込まれます。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[HMACキーリストを作成](#1-hmacキーリストを作成)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[HMACキーを更新](#2-hm
MockMvcではerror/404.htmlやerror.htmlをテスト不可能。その理由と代替策
# 環境
– Java 21
– Spring Boot 3.2
– Thymeleaf 3.1# やりたいこと(でも出来なかった)
MockMvcを利用したコントローラーの単体テストで、以下のテストを試みました。– コントローラーメソッド内で想定外の例外(=ExceptionHandlerを作っていない例外)がスローされたら、error.htmlの内容がレスポンスされる
– 存在しないURLを指定したら、error/404.htmlの内容がレスポンスされる具体的なテストコードはこちらです。
“`java:MockMvcを使ったテストコード
@SpringBootTest // webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT を指定しても結果は同じ
@AutoConfigureMockMvc
public class SampleControllerTest {
@MockBean
SampleService sampleService;@Autowired
Mo
クラス型 フィールド メソッド引数 戻り値
## has-aの関係
フィールドにクラス型の変数を宣言する
あるクラスが別のクラスをフィールドとして利用している関係
“`Sword.java
public class Sword
String name; // 剣の名前
int damage; //
“`
“`Hero.java
public class Hero {
String name;
int hp;
Sword sword; // 勇者が装備している剣の情報
public void attack() {
System.out.println(this.name + “は攻撃した!”);
System.out.println(“敵に5ポイントのダメージをあたえた!”);
}
}
“`
Heroクラスに新しく追加されたフィールド「Sword」は、int型やStirng型ではなくSword型
フィールドにクラス型の変数を宣言ができる
Hero has-a Sword(勇者は剣を持っている)“`Main.java
public class Main {
public stati
Eclipseのデバック入門
# デバックのやり方
Eclipseのデバックについてまとめた。
OSはwindows。## ブレークポイント
+ プログラムの実行を一時停止するポイント
### 設定方法
+ 設定したいソースコードの行番号の左側をダブルクリック![スクリーンショット 2024-04-29 180504.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3767613/d475f3d2-e6ea-79c5-6335-94f0d95bbd01.png)
### 解除方法
+ もう一度ダブルクリック## 動作
|コマンド|説明|備考|
|:-:|:-:|:-:|
|F11|デバック実行|Ctrl + F11で普通の実行|
|F5|次の1行を実行|メソッド内部まで見たい場合|
|F6|次の1行を実行|そのまま下の行に移動|
|F7|メソッドを最後まで実行し呼び出し元へ戻る|
|F8|次のブレークポイントまで実行|ブレークポイントがない場合は最後まで実行|
|Ctrl + R|カーソルがある行まで実行|
|Ctrl
Javaアプリケーションサーバ一覧
Javaアプリケーションサーバーを一覧にしてみた。
|組 織|種 別|製 品 名|製品ページ|
|:-|:-|:-|:-|
|IBM|商用|WebSphere AS ND/Base|https://www.ibm.com/jp-ja/products/websphere-application-server|
|IBM|商用|WebSphere AS Liberty Core|https://www.ibm.com/jp-ja/products/cloud-pak-for-applications/liberty|
|IBM|OSS|Open Liverty|https://openliberty.io/|
|RHEL|商用|JBoss EAP|https://www.redhat.com/en/technologies/jboss-middleware/application-platform/|
|RHEL|OSS|WildFly|https://www.wildfly.org/|
|RHEL|OSS|Quarkus|https://quarkus.io/|
|Oracle|
[Cloud Storage API(V2)] Javaでオブジェクトをダウンロードする
Cloud Storage API V2(Java)を使用して、
Cloud Storageのオブジェクトをダウンロードする方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[オブジェクトをダウンロード](#1-オブジェクトをダウンロード)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[メタデータをダウンロード](#2-メタデータをダウンロード)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|## 1. オ
Javaで「import文の使い方」の動作を確認してみた
# 概要
Javaで「import文の使い方」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/const/index9.html
# 実装
以下のファイルを作成しました。
“`JSample9_1.java
import java.time.LocalDate;class JSample9_1{
public static void main(String[] args){
LocalDate ld = LocalDate.now();
System.out.println(ld);
}
}
“`以下のコマンドを実行しました。
“`
$ javac JSample9_1.java
$ java JSample9_1
2024-05-01
“`# まとめ
何かの役に立てばと。
Data Structure
## Data Structure
### Topics
– List
– Set
– Map
– Stack
– Queue
## Why do we learn Data structure?
– to store data and process data efficiently.
–
![Screenshot 2024-04-27 at 14.52.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779552/6ca9d80b-3a1e-7b90-a204-5aa664a1850f.png)![Screenshot 2024-04-27 at 14.50.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779552/75d530dd-7706-1e9e-4f9e-95054675d308.png)
## List
Can store single data type of many objec
[Cloud Storage API(V2)] JavaでCloud StorageのHMACキー情報を取得する
Cloud Storage API V2(Java)を使用して、
Cloud StorageのHMACキー情報を取得する方法
についてご紹介します。**HMACキーとは**
アカウントに関連付けられた認証情報の一種です。
HMACキーを使用して署名を作成すると、その署名がCloudStorageに対するリクエストに組み込まれます。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[HMACキーリストを取得](#1-hmacキーリストを取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[HMACキーを取得](#2-hmacキーを取
Java Silver SE11の個人的な要点4選
JavaSilverSE11の黒本を読み込んでこれは大事だなって思ったこと4選をまとめます。
– オーバーライドとオーバーロード
– 配列の初期化方法いろいろ
– clone()メソッド
– 関数型インターフェース# オーバーライドとオーバーロード
まずここで一番引っかかったポイントは継承したメソッドをどのように使うかでした。
基本的にサブクラスはスーパークラスのメソッドを扱えますが、宣言する型によって使えたり使えなかったりします。#### パターン①:最も基本的なパターン
“`java
public class A{
public void sample(){};
}public class B extends A{
public void test(){};
}public class Main{
public static void main(String[] args){
A a1 = new A(); //1 A型にAのインスタンスを代入
A a2 = new B(); //2 A型にBのインスタンスを
Cursorを使って、VSCodeの拡張機能を1日で作ったお話
# はじめに
Webアプリ開発の風景は、ここ1年で徐々に変わりつつあります。
Java開発者たちの間で、昔ながらのEclipseから、生成AIが利用できる新しい開発環境(CursorやGitHub Copilot、CodeWhispererなど)への移行が進んでいます。
この変化がもたらす影響と新たなチャレンジについて、レポートします。# 問題点
開発環境をCursorに切り替えてみたものの、Eclipseで日常的に使用していた機能やプラグインが使えません。
特に今回はEclipseで使っていた [Doma Tools](https://github.com/domaframework/doma-tools) というプラグインがVSCodeには無いため、手作業でSQLファイルや保管先フォルダを作成する必要があり、作業効率が低下していました。# 解決策の試み
そこで、不便を解消するために、自分でVSCodeの拡張機能を作ってみることにしました。
VSCodeの柔軟なAPIを利用すれば、必要な機能を自分で作り出すことができるのでは?と考えました。# AIの活用
拡張機能の開発で
[Cloud Storage API(V2)] Javaでオブジェクトのアクセス制御リスト(ACL)エントリを作成・更新・削除する
Cloud Storage API V2(Java)を使用して、
Cloud Storageオブジェクトのアクセス制御リスト(ACL)エントリを作成・更新・削除する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[ACLを作成](#1-aclを作成)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[ACLを上書き](#2-aclを上書き)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|3|||[ACLを更新
[Cloud Storage API(V2)] Javaでオブジェクトの保存(アップロード)・更新・削除する
Cloud Storage API V2(Java)を使用して、
Cloud Storageのオブジェクトの保存(アップロード)・更新・削除する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[オブジェクトを保存](#1-オブジェクトを保存)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[オブジェクトを上書き](#2-オブジェクトを上書き)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|3|||[オブジェ
Javaで「System.out.printlnとは」の動作を確認してみた
# 概要
Javaで「System.out.printlnとは」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/const/index8.html
# 実装
以下のファイルを作成しました。
“`Test.java
class Test {
public static void main(String[] arg){
int sum;
sum = 10 + 5 + 8;
System.out.println(“合計=” + sum);
}
}
“`以下のコマンドを実行しました。
“`
$ javac Test.java
$ java Test
合計=23
“`# まとめ
何かの役に立てばと。
[Cloud Storage API(V2)] Javaでオブジェクトのアクセス制御リスト(ACL)エントリを取得する
Cloud Storage API V2(Java)を使用して、
Cloud Storageの指定したオブジェクトのアクセス制御リスト(ACL)エントリを取得する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[ACLリストを取得](#1-aclリストを取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|2|||[ACLを取得](#2-aclを取得)|
||1||[スコープ](#21-スコープ)|
||2||[実行](#22-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|## 1. AC
[Java]List、Queue、Setのクラスメモ
Javaでコーディングを行う際に必ずと言ってもよいほど使用するコレクションについて、今まで使用したことがないものも含めて改めて学習したので備忘録としてまとめてみます。
# Listインターフェース
コレクションでよく使用するやつ。学習した3つの実現クラスについてまとめます。
## Arraylist
内部に配列を持っていて、あらかじめ要素数を決めておかなければならない配列とはことなり、要素数を必要に応じて増やすことが可能です。要素数が増える場合、最初に内部で持っていた配列より大きな要素数を扱うことができる配列を新たに作成しそこに元の要素をコピーします。そのため、扱う要素数が増えていくにつれて処理が遅くなります。
具体的に言うと値の読み書きは高速ですが、要素の追加、削除は遅いです。## LinkedList
要素それぞれが前要素の情報と後要素の情報を持っており、繋がっているリスト。各要素にアクセスする際には先頭から順に辿っていくことで要素にアクセスする。
そのためArrayListと比べて要素にアクセスする処理が遅くなります。一方、要素を追加する際にArrayLis
SpringBootでデータベースによるログイン認証とパスワードハッシュ化(暗号化)
# この記事はこれの続きです
https://qiita.com/waokitsune/items/bcb5ce85a912bc506bac
# 概要
前回まではユーザー台帳はハードコーディングしていました。
そこから…
* ユーザー台帳はデータベースに持たせる。
* データベースで保持するパスワードはハッシュ化(暗号化)。と変更します。
# データベース側
MySQLを使います。
『neko』というスキーマーに『neko_user』というテーブルがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/bcfc940f-4b8e-56c0-3ac9-a6311a2f3ce6.png)あらかじめユーザー情報はインサートされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/d442cd35-abc4-2cf9-1a1e-a4ba3
[Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)のIAMポリシーを更新する
Cloud Storage API V2(Java)を使用して、
Cloud Storageの管理フォルダ(マネージドフォルダ)のIAMポリシーを更新する方法
についてご紹介します。**IAM**
Identity and Access Managementの略で
リソースへのアクセス制御を管理する機能のことです。
リソースに対し、どのユーザーがどうアクセスするか等の
ルールのことをIAMポリシーと呼びます。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う](https://qiita.com/doran/items/2a5f7ef8070fd5b8c94d)
を参照ください。
:::|No|||目次|
|—|—|—|—|
|1|||[IAMポリシーを更新](#1-iamポリシーを更新)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポン
SpringBootのThymeleafでEntityのForEach例外起きた時の対応
:::note warn
根本の原因調査までしてないです。
参考情報として見て下さい。
:::# 現象
Entityは下記のようにlombokのDataを使ってgetterとsetterをコーディング不要にしていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/0b19d028-a1a4-6723-1702-3fc1144641d4.png)そのEntityをリストに詰めて、ThymeleafでForEachした時に例外になりました。
『idというフィールドは存在しませんよ』的な例外の文言でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/3e41d0cc-01cd-1584-75f1-01a9f0e75f34.png)# 対応
おそらくSTS4にlombokがインストールされていなかったのが原因のようでした。
コーディング中、『Ent