JAVA関連のことを調べてみた

JAVA関連のことを調べてみた
目次

🔰アプリを公開までやりたい

## 簡単に自己紹介
・22卒 SE 男 24
・飽きっぽい
・眠い

## なぜやりたいと思ったのか?
・自分の知識が乏しいと感じる
・自信にしたい
・アウトプットする習慣をつけたい
・自分のアイデアを形にすることに魅力を感じた

## やりたいこと
一段階
・アプリ作成
・公開

二段階
・改良を重ねる
・FB

## 方針・意気込み
・使用するサービス・技術の理解をしながら進める
・分からないけど何となく動いたは、NG
・諦めない・・!!

元記事を表示

「ログイン成功後に毎回XXXを実行したい」をSpring Securityで実装する

## ログイン成功後にXXXを実行したい
– ログイン成功後、ユーザー情報のログを出力したい
– ログイン成功後、〇〇を満たすユーザーはXXにリダイレクトしたい

こうした要望をSpring Securityを使って実装するための方法を紹介します。

私の調べた限り、`AuthenticationSuccessHandler`と`AuthenticationSuccessEvent`の2種類の実装方法が存在しました。

## versions
– Spring Boot 3.2.3
– Spring Security 6.2.2

## AuthenticationSuccessHandler
まずは`AuthenticationSuccessHandler`を継承したカスタムのハンドラクラスを作成します。
“`java:CustomLoginSuccessHandler
@Component
public class CustomLoginSuccessHandler implements AuthenticationSuccessHandler {
@Override

元記事を表示

[Gmail API] Javaでメール下書きを作成・更新・削除、下書きを送信する

Gmail API v1(Java)を使用して、
Gmailのメール下書きを作成・更新・削除する方法と
作成した下書きを送信する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No|||目次|
|—|—|—|—|
|1|||[下書きを作成](#1-下書きを作成)|
||1||[添付ファイルなし](#11-添付ファイルなし)|
|||1|[スコープ](#111-スコープ)|
|||2|[実行](#112-実行)|
|||3|[レスポンスの内容](#113-レスポンスの内容)|
||2||[添付ファイルあり](#12-添付ファイルあり)|
|

元記事を表示

[Gmail API] Javaでメールの添付ファイルを取得する

Gmail API v1(Java)を使用して、
Gmailのメールの添付ファイルを取得する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No||目次|
|—|—|—|
|1||[添付ファイルを取得](#1-添付ファイルを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. 添付ファイルを取得
メールの添付ファイルを取得します。

取得する添付ファイルIDは、MessagePartBodyのgetAttachmentIdで取得可能で

元記事を表示

[Gmail API] Javaで送信元エイリアスのS/MIME構成を取得する

Gmail API v1(Java)を使用して、
送信元エイリアスのS/MIME構成を取得する方法
についてご紹介します。

**S/MIMEとは**
電子証明書を用いたメールのなりすましや改ざん、盗聴などを防ぐための仕組みです。
セキュリティを高めるために、メールの暗号化と電子署名を行います。

このAPIは、無料版のアカウントでは使用できず、利用するには
有料版の「Google Workplace」でのアカウントが必要になるそうです。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No||目次|
|—|—|—|
|1||[S/MIME構成一覧を取得](#1-smim

元記事を表示

java.net.http.HttpClient にて、IOException: Too many open files エラーが発生する場合の対応

# 概要
`java.net.http.HttpClient`を利用してHTTP通信を行う実装を行った際、処理が集中すると `IOException: Too many open files` というエラーが発生してしまうことがあります。

それほど大した負荷でもないのに、この例外が発生してしまった場合、以下の2つに問題がある可能性が考えられます。

1. OSの設定
2. HttpClientのインスタンスの持ち方

それぞれ、どのように解消すれば良いか、以下に記述します。

# 1. OSの設定を見直す
Linux OSにおいて、ファイルディスクリプタの上限が低く抑えられている可能性があります。この上限値を増やす、または取り払うことで問題が解消されるかもしれません。
詳細は他記事に委ねます。

# 2. HttpClientインスタンスをキャッシュする
HttpClientは、デフォルト実装を`HttpClient.newBuilder().build()`によって生成

元記事を表示

[Gmail API] JavaでGmailの代理人の情報を取得する

Gmail API v1(Java)を使用して、
Gmailの代理人の情報を取得するを取得する方法
についてご紹介します。

**代理人とは**
ユーザーやグループを代理人に指定してGmailアカウントへのアクセスを許可すると、
代理人は受信トレイで次の操作ができます。
・フィルタ(ルール)でメールを自動的に振り分ける
・メールをアーカイブしてやりとりの記録を残す
・ラベルを使用してメールのステータスを管理する
・送信者として代理人名を表示する、または表示しない
代理人は、受信トレイの共有と同義です。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[

元記事を表示

Javaアプリケーションのバージョン間移行の診断(Migration Toolkit for Application Binaries)

## はじめに
現場でIBM社のWebSphere Application Server(以下WASと略する)とJavaで作られたアプリケーションのバージョン間移行を行う。
バージョンアップによる影響を診断するためのツールを導入し、影響調査に利用した。

## Migration Toolkit for Application Binariesとは
WASやJavaのバージョン間移行やマイグレーションを診断するツール。
jarファイルをコマンドで実行し利用する。
診断対象としてJavaアプリケーションのwarまたはearファイルが必要。

warファイルの作成方法は以下参照。Eclipseでのビルドを想定。
[warファイル作成(ビルド)](https://rainbow-engine.com/war-howto-create/)

Migration Toolkit for Application Binariesは以下のリンクからダウンロードできる。
[ツールのダウンロード](https://www.ibm.com/support/pages/node/6250961#asset/

元記事を表示

[Gmail API] Javaでメールをメールボックスに入れる(自分にメール送信)

Gmail API v1(Java)を使用して、
Gmailでメールをメールボックスに入れる方法
についてご紹介します。

メールボックスにメールを入れる方法は下記の2通りあります。

**・メールボックスに直接メールを入れる**
メールクライアントに介することなく、メールボックスに直接メールを入れます。
IMAPコマンドのAPPENDを実行した場合と同じ動きです。
(IMAP:メールサーバー側のメール受信に使用する機能)

**・SMTPサーバーを介してメールボックスにメールを入れる**
通常のメール送信と同様の流れでメールボックスにメールを入れます。
ただし、SPFチェックは行われません。
(SPF:電子メールの送信元ドメインが詐称されていないかを検査するための仕組み)

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「

元記事を表示

[Gmail API] Javaでメールを送信する

Gmail API v1(Java)を使用して、
Gmailでメールを送信する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No|||目次|
|—|—|—|—|
|1|||[メールを送信](#1-メールを送信)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|

## 1. メールを送信
メールを送信します。

#### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
GmailScope

元記事を表示

[Gmail API] Javaでメッセージ本文を作成する

Gmail APIで共通して使用する
com.google.api.services.gmail.model.Messageクラス
についてご紹介します。

Gmail APIを使用する上でMessageクラスはよく出てくるクラスですので、
メッセージ本文の生成の方法を記事にまとめました。

:::note info
Gmail APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[jakarta.mailライブラリの使用](#1-jakartamailライブラリの使用)|
|2||[MimeMessageインスタンス生成](#2-mimemessageインスタンス生成)
||1|[添付ファイルがない場合](#21-添付ファイルがない場合)|
||2|[添付ファイルがある場合](#22-添付ファイルがある場合)|
|3|

元記事を表示

#7【勉強メモ】エヴァンス本からざっくり理解するDDD

## 目標
・ふわっとした理解のDDDについて[エヴァンス本](https://www.amazon.co.jp/%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88-Architects%E2%80%99Archive-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E3%81%AE%E5%AE%9F%E8%B7%B5-%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9/dp/4798121967/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%B

元記事を表示

[Gmail API] JavaでGmailの代理人を生成・削除する

Gmail API v1(Java)を使用して、
Gmailの代理人の情報を取得するを生成・削除する方法
についてご紹介します。

**代理人とは**
ユーザーやグループを代理人に指定してGmailアカウントへのアクセスを許可すると、
代理人は受信トレイで次の操作ができます。
・フィルタ(ルール)でメールを自動的に振り分ける
・メールをアーカイブしてやりとりの記録を残す
・ラベルを使用してメールのステータスを管理する
・送信者として代理人名を表示する、または表示しない
代理人は、受信トレイの共有と同義です。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

|No||目次|
|—|—|—|
|1

元記事を表示

Javaの配列のCloneについて整理する

## 1次元配列
1次元配列arrayAを作成する。
“`java:
jshell> int[] arrayA = {1, 2, 3, 4}
arrayA ==> int[4] { 1, 2, 3, 4 }
“`
このときのイメージはこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531112/561f34d6-af74-129a-cd8a-a14bc72fa303.png)

arrayAをcloneして別の1次元配列arrayBを作成する。
“`java:
jshell> int[] arrayB = arrayA.clone()
arrayB ==> int[4] { 1, 2, 3, 4 }
“`
このときのイメージはこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531112/f57db279-6b67-2d80-ee4e-db1cf5709

元記事を表示

【2024年 目標について】

2024年の目標を書いていく
現在のスキル
・ExcelVBA
・AccessVBA
・SQL
・PHP(Laravel)
・GitHUB
・DBAシルバーの合格(5月までに)
・機械学習(ニューラルネットワーク)の勉強
*地震のデータ分析
・Python(django)で1つwebアプリケーション作る
理祖は、デプロイまでする。
・dockerを使う

1年後に結果報告していく。

終わればここに報告していく

元記事を表示

[Gmail API] Javaでメールボックス内のラベルを作成・更新・削除する

Gmail API v1(Java)を使用して、
Gmailのラベルを作成・更新・削除する方法
についてご紹介します。

**ラベルとは**
メールにつける印みたいなものです。
ラベルを作ることでラベル毎に整理、管理することができます。

Gmailの「設定」 -> 「ラベル」 から確認・設定できます。
作成可能なラベルは10,000個までです。

ラベルにはシステムが用意したsystemとユーザーが作成したuserが存在します。
systemのラベルは作成したり削除することはできません。([5. システムラベル](#5-システムラベル))

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.c

元記事を表示

ThymeleafでJavaScriptを埋め込む(インライン処理)

## 本記事の内容
Thymeleaf(HTML)の中で、Modelに格納したDtoのプロパティなどの値を元にJSの処理を呼び出したい場面があった。その場合の記載方法に関して以下に記す。

## 記載方法
HTML内のscriptタグ内にて以下のように記載をすると実現可能。
(参考資料によるとインライン処理というらしい。。)

“`html:hoge.html