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

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

依存性注入のメモ

# 依存性注入とは何かChatGPTに聞いてみた
依存性注入(Dependency Injection)は、ソフトウェアエンジニアリングにおける設計原則の一つであり、特定のコンポーネントが他のコンポーネントに依存しないようにするための手法。具体的には、あるオブジェクトが他のオブジェクトを直接生成せずに、外部から提供されることでそのオブジェクトの依存関係を明示的にすること。

### 目的
1\. 結合度の低減
クラス間の依存関係を減らし、各クラスを独立して変更やテストができるようにする。
2\. 柔軟性の向上
依存性注入を使用することで、異なる実装のオブジェクトを簡単に交換することができ、システム全体の柔軟性が向上する。
3\. テスト容易性の向上
外部から依存オブジェクトを注入することで、ユニットテストやモックテストが容易になる。

# ChatGPTの回答を見て
結局コードで書くとどうなるのかが分からなく、言葉の意味も理解することが難しい
主に保守やテストで作りやすくなるといった目的はなんとなく把握することはできた

# 実装してみよう
CarクラスとEngineクラスを用意
車は

元記事を表示

Lambda ってなんですか〜SkillBuildersってのがある話

## はじめに

ちょっと執筆中です LTなどで使ったパワポを記事にしていこうと思います。
アプリケーション(まわりにJava アプリケーションエンジニアがおおかったのもあり、JAVA+Tomcatあたりのアプリケーション書いてる人を前提に進めます)エンジニア向けに書いていきます。

## 経緯

後輩や同僚から、「AWS始めたい」「アプリケーションエンジニアもそろそろサーバレスをしたい」「ラムだって何?」と、いろんなレベル感のメンバから聞かれるので書いたLT資料です。
行間が読めなくなるのでちょこちょこ説明を追記していこうと思います。

目標は「AWS Lambda を使い始める皆様へ」の第一歩目を作る。

## はじまり,はじまり〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8216/d0d8ddee-d8bf-2c83-db94-aef4f40fc978.png)

![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

[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||目次|
|—|–

元記事を表示

[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-レスポンスの内容)|

## 1. イベント一覧の取得
指定したカレンダーのイベント一覧を取得します。

##

元記事を表示

【初心者】SpringフレームワークにおけるDIコンテナについて

## DIコンテナとは何か

DIコンテナは、**オブジェクト間の依存関係を管理する仕組み**です。

インスタンスの生成、オブジェクトへのインスタンスの注入、インスタンスのライフサイクルの管理の役割を担います。

## なぜDIコンテナを使うのか
### 従来

“`java
public class UserService {
public List findAll() {
UserRepository userRepository = new JdbcUserRepository();
return userRepository.selectAll();
}
}
“`

問題点

JdbcUserRepositoryクラスをテスト用のTestUserRepositoryに変更したい場合、以下のように変更する必要があります。

“`java
public class UserService {
public List findAll() {
//JdbcUserRepository → TestUserRepository
Use

元記事を表示

オブジェクト指向の理解と実践

## 始めに
社会人1年目を乗り切る前に、初めてQiitaを投稿します。

新卒1年目、現場で使用するJavaの基礎体力をつけるため、とにかく資格をと思い、
Java BronzeとJava Silverを受験し、どちらも無事合格しました。
ですが、参考書を利用し勉強を行う中で「オブジェクト指向」のチャプターだけ避け続けてきました。

第一印象で苦手だと感じると、その印象を拭うのに時間がかかる性格なこともあり、
「オブジェクト指向」というワードが出てくると『はいはい、捨て問ね』と勝手に決めつけ、40ページほどスキップする、そんな勉強をしていました。
運良く資格勉強では障壁になりませんでしたが、現場で働く際、
メンバーと共通の考え方を持つために、「オブジェクト指向」を身につけることはマストだということに気づいたため、今回は苦手克服を目的として執筆しようと思います。

### この記事の対象者
– 新卒1年目~2年目エンジニアの方
– Javaの学習を始めた方
– オブジェクト指向から逃げようとした私

### この記事で伝えること
– Javaを用いたオブジェクト指向について理解する

元記事を表示

[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-実行)|

元記事を表示

[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を実行するには、以下のいずれかのスコープを指定してください。
“`
CalendarScopes.CALENDAR
CalendarScopes.CALENDAR_R

元記事を表示

[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||目次|
|—|–

元記事を表示

コードの中で日本語を使うことに関しての所感

## はじめに

本記事は「Webなんでも勉強会」という勉強会で話した内容をベースに、時間の都合で端折った話などを書き加えたものです。

https://gsfukuoka.connpass.com/event/312323/

ちなみにコードやそれに関する用語はKotlin(およびJava)を前提としています。

## この記事で話すこと

関数名やら変数名に日本語、というかマルチバイト文字が使えるプログラミング言語ってあると思うのですが、実際コードの中で日本語を使うのってどう思いますか?

例えばこんなのです。これは医療保険を表すクラスをKotlinで書いてみたものです。

私は肯定的に思っているのですが、なぜ肯定的なのかを書いていきたいと思います。

“`Kotlin
class 保険(val 保険者番号: String,
val 記号: String,
val 番号: String,
val 枝番: String) {

val is後期高齢者: Boolean
get() = // 後期高齢者か

元記事を表示

Javaで文字列が一致しているか確認する時はequalsを使う

## はじめに
もうタイトルだけで言いたい事は言ってしまった感があります。
私は業務でほとんどJavaしか使ってこなかったので当然のことだと思っていましたが、他の言語を勉強していく内に以外と`equals`を使わないことが分かってきました。
Javaの子ども(だと勝手に思っている)**Kotlin**ですら`==`で比較できる。

::: note info
Kotlinでも`equals`は使えます。
:::
ということでこの件を浅く掘り下げます。

## Stringはプリミティブ型ではない
Stringは1文字目が大文字である事からもわかるように**クラス**となります。
`int`や`boolean`といったプリミティブ型ではありません。
ではなぜ以下のような宣言ができるのか。

“`java
String text = “abc”;
int num = 123;
“`
これはStringだけの特殊な仕様により、コンパイラが自動的にStringオブジェクトを生成しているためです。
つまり、`String text = “abc”;`の宣言は以下と _概念的には_ 同等になり

元記事を表示

Doma2を使ってみる(その2)

# Doma2を使ってみる(その2)

## セットアップ
### 環境
– 言語
– Kotlin 1.9.22
– フレームワーク
– SpringBoot 3.2.3
– buildツール
– Gradle 8.5
– IDE
– Intellij

### Intellij用プラグイン
#### [Doma Support](https://plugins.jetbrains.com/plugin/7615-doma-support)
IntelliJ上で、Domaを使った開発を少しだけ便利にすることができるプラグイン
– DAO関連で主にSQLファイルの作成と移動などが簡単になる
[README](https://github.com/siosio/DomaSupport/blob/master/README.md)

### Gradle
#### build.gradle.kts

“`build.gradle.kts
plugins {
// KotlinでSpring Boot開発を行うためのプラグイン
// https://spring.io/

元記事を表示

[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

元記事を表示

【Java22】super()をコンストラクタの先頭以外に書けるようになる【JEP 447】

“`java:Java21
public class SuperClass{
public SuperClass(long value) {
/* なんか重い処理 */
}
}

public class SubClass extends SuperClass{
public SubClass(long value) {
super(value);

// super呼ぶ前に検証したいんじゃが
if(value <= 0){ throw new IllegalArgumentException("non-positive value"); } } } ``` これまで`super()`は必ずコンストラクタの一番最初に書かなければなりませんでした。 2024/03/19にリリースされたJava22において、ようやく次の書式が合法化されました。 ```java:Java22 public class SubClass extends SuperClass{ public SubClass(long value) { // 先に検証できる

元記事を表示

【備忘録】Springスターター・プロジェクト(Spring Initializr)を使う時の注意点【Spring Boot, eclipse】

# Javaのバージョンが正しいか確認する!
![スクリーン ショット 2024-04-01 に 15.59.00 午後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735520/dcd82509-9117-0aa2-0e3f-35ae1b550de2.png)

この確認をし忘れて違うバージョンを選択していると、JREシステムライブラリがアンバインド済みになってしまい、

:::note alert
エラー: メイン・クラスcom.example.demo.~を検出およびロードできませんでした
原因: java.lang.ClassNotFoundException: com.example.demo.~
:::
:::note alert
型 java.lang.Class を解決できません。It is indirectly referenced from required type org.springframework.boot.autoconfigure.SpringBootApplica

元記事を表示

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

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

Googleカレンダーの右上にある歯車マークを押して表示される
メニューの「設定」から設定できる内容を取得できます。

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

元記事を表示

【eclipse】Spring bootでバージョンが違うというエラーが出た(java.lang.UnsupportedClassVersionError)

JavaのSpring bootでWebアプリを開発していたら下のようなエラーが発生。

:::note alert
エラー: メイン・クラスcom.example.demo.~のロード中にLinkageErrorが発生しました
java.lang.UnsupportedClassVersionError: com/example/demo/~ has been compiled by a more recent version of the Java Runtime (class file version 66.0), this version of the Java Runtime only recognizes class file versions up to 65.0
:::

## 【原因】build.gradleで指定しているバージョンがJavaのバージョンと異なる
1. Javaのバージョンを確認
Eclipseのメニューから[設定]を選択→[Java]-[インストール済みのJRE]を選択
チェックの付いているJavaのバージョンを確認。

2. build.grad

元記事を表示

【Spring boot】メイン・クラスcom.example.demo.~を検出およびロードできませんでしたを解決する【eclipse】

eclipseを使ってSpring bootでWebアプリを開発していたらコードは間違えていないのに下のようなエラーが出てしまった。

:::note alert
エラー: メイン・クラスcom.example.demo.~を検出およびロードできませんでした
原因: java.lang.ClassNotFoundException: com.example.demo.~
:::
:::note alert
型 java.lang.Class を解決できません。It is indirectly referenced from required type org.springframework.boot.autoconfigure.SpringBootApplication
:::

# 【原因】JREシステムライブラリがアンバインド済みもしくは追加されてない
1. プロジェクトを右クリック
1. プロパティを選択
1. Javaのビルド・パスを選択
1. ライブラリー選択
1. 変数の追加からJRE システムライブラリー追加、もしくはアンバインド済みのJREシステムライブラリの編集で使

元記事を表示

メモ

~~~Java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class MessageService {

@Value(“${greeting.morning}”)
private String morningMessage;

@Value(“${greeting.afternoon}”)
private String afternoonMessage;

@Value(“${greeting.evening}”)
private String eveningMessage;

@Value(“${error.E101}”)
private String errorE101Message;

@Value(“${error.E102}”)
private String errorE102Message;

元記事を表示

[Google Calendar API(V3)] JavaでCalendar APIを使う

Googleが提供しているGoogle Calendar APIをJavaで使ってみました。

***Google Calendar APIとは***
Googleが提供しているAPIで、Googleカレンダーに関する操作ができます。

Google Calendar APIの利用料金は無料です。

|No|||目次|
|—|—|—|—|
|1|||[Google Calendar APIを使用するための準備](#1-google-calendar-apiを使用するための準備)|
||1||[プロジェクトの作成](#11-プロジェクトの作成)|
||2||[Google Calendar APIの設定](#12-google-calendar-apiの設定)|
||3||[APIを使用するためのキー取得](#

元記事を表示

OTHERカテゴリの最新記事