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

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

【AWS】APIGatewayでLambdaのアプリ側で発生した例外処理を500エラーで返したい。

## 背景

JavaアプリをLambdaでホストしているが、API Gateway経由でビジネスロジック側のエラー処理した際、ステータス上200で返ってきてしまい、困ったので調べた

## TL;DR

Javaだと例外処理の返却値が標準エラーの形式と合ってないので、レスポンス内容にステータスコード(5XX系)を埋め込む
200系のレスポンスマッピングテンプレート側でステータスコードを条件分岐させてマッチすればオーバーライドするように処理させると500エラーにできる。

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-override-request-response-parameters.html#apigateway-override-request-response-parameters-override-response

## 確認手順

以下は、検証のために確認した手順を記載しておく

### 前提条件

以下構成なっていることを前提とする。

![image.

元記事を表示

Intellij 備忘録【Java】

# 本記事の意義

Java初心者がIntellijを使い始めたため、備忘録としてまとめる。

# コマンド集

| 動作 | コマンド |
|:-:|:-:|
|設定画面を表示 | `Command + ,` |
| プロジェクトツールへカーソルを移動 | `Command + 1` |
| エディタウィンドウへカーソルを移動 | `esc` |
| 新規ファイル作成 | `Command + N` |
| ファイルの実行 | `Control + R` |
| デバッグ | `Control + D` |

元記事を表示

[Google Calendar API(V3)] Javaでカレンダーのユーザー設定情報の変更を監視する

Google Calendar API V3(Java)を使用して、
Googleカレンダーのユーザー設定情報の変更を監視する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[設定情報の変更を監視](#1-設定情報の変更を監視)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[設定情報の監視を停止](#2-設定情報の監視を停止)|
|3||[変更通知を受信](#3-変更通知を受信)|

## 1. 設定情報の変更を監視
Googleカレンダーのユーザー設定情報の変更を監視します。

### 1.1. スコープ
このAPIを実行

元記事を表示

[Google Calendar API(V3)] Javaでアクセス制御ルール(ACL)を変更を監視する

Google Calendar API V3(Java)を使用して、
Googleカレンダーのアクセス制御ルール(ACL)を変更を監視する方法
についてご紹介します。

**カレンダーのアクセス制御ルール(ACL)とは**
指定したユーザー、またはグループと予定の共有ができます。
UIでは、カレンダーの設定 -> [特定のユーザーまたはグループと共有する]
から設定できる内容です。

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

|No||目次|
|—

元記事を表示

Spring bootでREST APIを作ってみた。

# Spring bootでREST APIを作ってみた。
Spring boot勉強がてら作成

# 実装内容
マイナンバーをキーに個人情報を取得してくる的なAPI作成

# 使用データ
https://testdata.userlocal.jp/

# パッケージ構成
“`
├─java
│ └─com
│ └─example
│ └─api
│ └─demo
│ │ DemoApiApplication.java
│ ├─controller
│ │ MPersonalInfoController.java
│ ├─data
│ │ └─dto
│ │ CommonResponse.java
│ │ MPersonalInfoDto.jav

元記事を表示

[Google Calendar API(V3)] Javaで変更通知を停止する

Google Calendar API V3(Java)を使用して、
Googleカレンダーの変更通知を停止する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[変更通知を停止](#1-変更通知を停止)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. 変更通知を停止
登録済みの変更通知を停止します。

### 1.1. スコープ
このAPIを実行するのにスコープは必要ありません。

### 1.2. 実行
停止するには、変更通知を登録した際に取得できる
「チャンネルを識別するUUID」、「監視対象のリソースのバージョン固有

元記事を表示

Java 定数の宣言

変数を初期化で設定し、再度再代入すると上書きされる

絶対に上書きされなくない、書き換えられたら困る

・・・そんな時は
   finalという記述を使う!!

定数の宣言
 final 型 定数名 = 初期値;
    ☆一般的に定数名にはすべて大文字を用いる

例)
 final double PI = 3.14;

再代入はできないので、数値を変更したいときは、初期値を変更する

元記事を表示

Java変数型

変数宣言の文
 型 変数名;

☆整数を格納☆
byte   ±約128
short  ±約3.2万
int   ±約21億
long   ±約900京//世界の人口など

基本的にはintで大丈夫!
(byteやshortよりintの方が高速に処理できるコンピューターも多い)

☆少数を格納☆
float 少しあいまいでもよい少数
double 普通の少数

少数を扱うときは特別な事情がない限りdouble型を使用する
少数部のことをコンピュータでは浮動小数点型という。真に厳密な計算ができないという弱点があるので誤差が許されない計算、金額の計算にはfoatやdoubleを使わない。

☆真偽値☆
boolean trueかfalse

☆文字☆
chat
例 chat = ‘苺’;
ソースコードに文字を記述する場合は引用符(‘)で囲む

☆文字列☆
String
例 String = “苺を食べる”;
ソースコードに文字列を記述する場合は二重引用符(“)で囲む

引用符、二重引用符は全角にしないように気を付ける

元記事を表示

[Custom Search API(V1)] JavaでGoogle検索する

Custom Search API V1(Java)を使用して、
Googleが提供するカスタム検索エンジンで検索する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Custom Search API(V1)] JavaでGoogle検索する(準備編)](https://qiita.com/doran/items/3fda453a80a53e26498f)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[検索する](#1-検索する)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. 検索する
カスタム検索エンジンで検索します。

### 1.1. スコープ
このAPIを実行するには、以下のスコープを指定してください。
“`
https://www.googleapis.com/auth/cse
“`

### 1.2. 実行

コード中の「CXキー」は
2.

元記事を表示

[Custom Search API(V1)] JavaでGoogle検索する(準備編)

Custom Search API(V1)をJavaで使ってみました。
今回の記事はAPIを利用開始するのに行うことを記事にしました。

***Custom Search APIとは***
Googleが提供するカスタム検索エンジンで検索することができるAPIです。

カスタム検索エンジンでは、Google検索の様にWeb全体を検索できます。
ただし、Google検索とカスタム検索エンジンは下記の点が異なります。

・ウェブ上の他の検索結果よりも自分のウェブサイトの検索結果が強調される
・アカウントに基づく情報など、一部のGoogle検索の機能が含まれない
・検索結果が10件を超える場合、サブセットの検索結果が表示されることがある

:::note info
実際のCustom Search APIの実行コードは
[⧉[Custom Search API(V1)] JavaでGoogle検索する](https://qiita.com/doran/items/5e05d10d6259971f37ba)
を参照ください。
:::

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

元記事を表示

SpringBootでMicrosoftAccessのデータベースへの接続は諦めました

# 概要

SpringBoot ⇒ MicrosoftAccessへ接続して、データの取得や更新の処理を作ることを諦めました。
今後似たようなことを検討する時の材料として記事を残します。

# やりたかったこと

MicrosoftAccess(accdbファイル)で作られた古いシステムがありました。
SpringBootでそのシステムが持っているテーブルのデータが必要でした。

また、ちょっとめんどくさい点として、そのaccdbファイルはパスワードでロックされているものでした。

# UCanAccessの存在

まず、『UCanAccess』というjarがあり、それを使うとJAVAからAccessへの接続ができると分かりました。

# build.gradleでjarの用意

build.gradleのdependenciesに下記を追加しました。

“`
implementation (‘net.sf.ucanaccess:ucanaccess:5.0.1’){
exclude module: ‘commons-logging’
}

implementation (‘co

元記事を表示

#13【勉強メモ】エヴァンス本からざっくり理解する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

元記事を表示

#12【勉強メモ】エヴァンス本からざっくり理解する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

元記事を表示

MapのnullチェックにはMapUtils.isEmpty()を使おう!

# はじめに
こんにちは!なっしーです!

前回に引き続き、Java(Apache、Spring環境)のtipsを紹介しようと思います!

前回はこちら↓

https://qiita.com/nashi-nashi/items/1d66e5d8dc5ffd8142a8

# 想定読者層
前回と同じく若手向けの記事です。
Javaでの業務ロジックや個人開発などでコードを書き始めた人を想定しています。

# 忙しい人向け結論
– MapのnullチェックにはMapUtilsのメソッド(isEmpty())を使おう!
– MapUtilsはApache版とSpring版があるけど機能は一緒だよ!

# 本編
今回紹介するMapUtils.isEmpty()はApache版とSpring版がありますが、どちらも一緒の機能なので解説だけします!

皆さんはMap型のnullチェックはどう書いてますか?
私はこのメソッドを知るまで、Mapのnullチェックはこんな感じで書いてました。
“`Java
Map hoge = new HashMap<>();

if

元記事を表示

[Google Calendar API(V3)] Javaでメインカレンダーのイベントを全て削除する

Google Calendar API V3(Java)を使用して、
Googleカレンダーでメインカレンダーのイベントを全て削除する
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[メインカレンダーのイベントを全て削除](#1-メインカレンダーのイベントを全て削除)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. メインカレンダーのイベントを全て削除
Googleカレンダーのメインカレンダーのイベントを全て削除します。
メインカレンダー以外は削除できません。

### 1.1. スコープ
このAPIを実行するには、以下のスコ

元記事を表示

[Google Calendar API(V3)] Javaでカレンダーを作成・更新・削除する

Google Calendar API V3(Java)を使用して、
Googleカレンダーを作成・更新・削除する方法
についてご紹介します。

Googleカレンダーの左下にあるマイカレンダー、他のカレンダーの情報が設定できます。

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

|No||目次|
|—|—|—|
|1||[カレンダーを作成](#1-カレンダーを作成)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行

元記事を表示

Javaのprivateメソッドをテストする方法

Claude3と会話しながら記事の原案を作ってもらいました。

## 問題:

Javaのprivateメソッドは外部から直接実行できないため、ユニットテストが困難である。

## 解決策:

1. クラスに備わっているpublic/デフォルトアクセス修飾子のメソッドを使ってテストする
2. 対象のprivateメソッドの可視性をデフォルトアクセス(通称パッケージプライベート)に変更する
3. Reflectionを使ってprivateメソッドを実行する

## 上記の解決策の妥当性:

1. が最も望ましい方法である。privateメソッドは通常、そのクラスのコンテキスト(インスタンス変数の状態)に依存するため、単独で呼び出して正しくテストできない場合が多い。そのため、publicメソッドから間接的に実行させることが適切である。

2.と3. はprivateメソッドを直接テストするため、コンテキストを無視してしまう可能性がある。
2.はカプセル化を損なう懸念があり、3.はパフォーマンス上の懸念がある。そのため、1.が難しい場合に限り、2.か3.を検討する。

## 備考
priv

元記事を表示

[Google Calendar API(V3)] Javaでカレンダーを挿入・更新・削除する

Google Calendar API V3(Java)を使用して、
Googleカレンダーをカレンダーを挿入・更新・削除する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[カレンダーを挿入](#1-カレンダーを挿入)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[カレンダーを上書き](#2-カレンダーを上書き)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[カレンダーを更新](#3-カレンダーを更新)|
||1|[ス

元記事を表示

#11(工事中)【勉強メモ】エヴァンス本からざっくり理解する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

元記事を表示

Java

本日からJavaの勉強を開始します!

Rubyは勉強したことがあり、まだまだ始まったばかりなのにRubyって簡潔( ´∀` )
みんなが言っていたの納得….笑

ソースコートの外側部分をとりあえず覚えるのを目標に!!(英語苦手)
https://gyazo.com/518addad6664d20c3f419cd3f3dad0e8
この形を覚えるぞ!
省略できるものもあるみたいだけど初心者は入力するのみだ

class名とファイル名が同じこと。
勉強すると日付とか入れたくなるけど気を付けるぞ
これはどの言語でも同じなんだろうけどわかりやすく!意識するぞ( `ー´)ノ

コンパイルをしてエラーがでるけど、まだまだ最初だからかなRubyよりはわかりやすいと感じた!
(調子のりすぎかな…笑)

次は変数宣言!

元記事を表示

OTHERカテゴリの最新記事