- 1. Open API Specでコード生成する際の個人的チェックリスト
- 2. 【合格体験記】Java Silver 17を受験してみて
- 3. Java Silver SE11合格記録
- 4. [Android その2] Androidのアプリケーションの基本要素
- 5. Java基礎_忘れがちな知識メモ
- 6. エラー解決:テンプレートが存在しないか、構成されたテンプレートリゾルバのいずれからもアクセスできない可能性があります。
- 7. Vue.js と Spring Boot を連携基本
- 8. Java と C# での違い
- 9. JavaServlet
- 10. Eclipseのビューを自分で作る【Eclipse + ChatGPT】
- 11. paizaラーニングレベルアップ問題集をJavaでやってみた
- 12. MyBatisで複数のDBに接続する
- 13. Eclipse Java でpackageを使用する
- 14. JavaでCSVを読み込むサンプル
- 15. Template Methodパターンとは?
- 16. GradleとTomcatを使ったJava Servletアプリのデプロイ方法
- 17. カスタムEnumValidアノテーションで有効性検証を実装してみました。
- 18. [Android その1] Androidの基礎
- 19. Java Silver試験対策:初心者エンジニアのための完全ガイド
- 20. SpringBoot + Thymeleaf バリデーションエラーの表示
Open API Specでコード生成する際の個人的チェックリスト
## 前提
– フロントエンドではopenapi-typescriptを利用している
– バックエンドではOepnAPI Generator(Spring)を利用している
– OpenAPI Specの記述にはredocly-cliを利用している## pathファイルのポイント
– tagsに記載した内容がコントローラー名になる
– 複数名で開発している時にはコンフリクトに気をつける必要がある
– [ ] descriptionにはクライアントがどう利用するか、どういう結果が返ってくるかを記載している
– operationIdに記載した内容がメソッド名になる
– なので冗長な名前はつけなくて良い
– 例: UserController#getUserByIdとかはgetByIdとかにできる
– [ ] parametersにはそのパラメータにどういう値をしているするとどういう結果が返ってくるか記載している## schemaファイルのポイント
– [ ] schemaに記載した内容がdtoのファイル名になるので、単独でみた時にわかるようにし
【合格体験記】Java Silver 17を受験してみて
## はじめに
先日、Java Silver 17に合格したので、感想や気を付けたことを残します。
Java Silver 17の受験に際して、ネット上など情報が少なく、こういった合格体験記が少なく苦労したので、少しでも参考になれば幸いです。※誤りありましたら、ご指摘いただけますと幸いです。
## Java Silver 11との違い
簡単には以下のような違いです。
| | Java Silver 11 | Java Silver 17 |
|———-|———-|———-|
| 制限時間 | 180分 | 90分 |
| 問題数 | 80問 | 60問 |
| 合格正答率 | 63% | 65% |Java Silver 17では1問あたりに避ける時間が減った他、合格正答率もやや上がっています。
### 試験範囲
大半は同じですが、Java Silver 11で出題範囲となっていた **「ラムダ式」「モジュールシステム」** 等は、Java Silver 17では試験範囲外となっています。逆
Java Silver SE11合格記録
# Javaに関する知識レベル
エンジニア3年目でJava silverを受験し無事に合格できたので過程を記録しておきます。
初投稿なのでお手柔らかに:bow_tone2:
完全プログラミング未経験で入社し現場では仕様変更程度の改修程度で、がっつりは触っていません。# 取得しようと思ったきっかけ
現場の作業についていくのが精一杯で自己学習はしていませんでした。(1~2年目)
しかし段々と開発をしたい、コードをガシガシ書いていきたいという気持ちが芽生えまず資格に挑戦してみようと思ったことがきっかけです。(今の自分には実績など証明できるものものがないので形になる資格が良いと考えました。)# 使用した参考書
使用した参考書は以下の3点です。
①は研修時に利用していた本で最初に1度よみ直した程度です。
紫本と黒本セットで必要!と思っていたので両方買いましたが、紫本も1周して黒本実施したときに見るくらいだったので正直黒本だけあれば良いとは思いました!(しかし紫本とかある方が理解は深まります。)
**黒本は必須アイテムと思います**
①[スッキリわかるJava入門 第4版](https:/
[Android その2] Androidのアプリケーションの基本要素
# Androidのアプリケーションの基本要素
Androidアプリケーションは、いくつかの基本要素(コンポーネント)から構成されています。これらのコンポーネントは、アプリの機能を提供し、ユーザーと対話する方法を定義します。以下に、Androidアプリケーションの基本要素を詳しく説明します。## 1\. アクテビティ(Activity)
アクテビティは、AndroidアプリケーションアプリのUIを構成する基本的なコンポーネントで、アプリの単一の画面を表します。
各アクテビティは独自のライフサイクルを持ち、アプリ内の異なる機能や画面を管理します。
* __役割__ :アクテビティはユーザーと直接対話し、ユーザーがアプリを使ってタスクを実行するための画面(UI)を提供します。
* __例__ : メールアプリでは、受信トレイの表示画面が1つのアクテビティであり、メールを作成する画面が別のアクティビティです。
* __ライフサイクル__ :アクティビティのライフサイクルには、onCreate(), onStart(), onResume(), onPause(), onStop(), o
Java基礎_忘れがちな知識メモ
## 基礎の基礎
以下コードは1つのクラスにつき1つ、必須のコード。このメソッドの中に一連の処理を記載する。
細かい処理内容などは別メソッドを作成して、このメソッドの中で呼び出す。“`
public static void main(string[] arg){
//内容
}
“`
## 変数の型変換ルール
小さなデータ型は大きなデータ型へ無条件で変換可能– 小数>整数
– 整数:long(8バイト)>int(4バイト)>short(2バイト)>byte(1バイト)
– 小数:double(8バイト)>float(4バイト):::note warn
注意
longに100が代入されていた場合、値が小さいとしても箱が大きいため、小さい箱のintに型変換は出来ない
:::大きなデータ型から小さなデータ型へ変換する際はキャストを使う
“`
long number1 = 100;
int number2 = (int)number1;
“`
キャストすると、小数点が切り捨てられて整数へ変換できる
“`
double number1 = 100.5;
long
エラー解決:テンプレートが存在しないか、構成されたテンプレートリゾルバのいずれからもアクセスできない可能性があります。
## エラー:template might not exist or might not be accessible by any of the configured Template Resolvers
和訳:テンプレートが存在しないか、構成されたテンプレートリゾルバのいずれからもアクセスできない可能性があります。### 修正前ソース内容
src/main/java/com.example.demo/HelloController.java
“`
package com.example.demo;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class HelloController {@RequestMapping(value=”/hello”)
private String hello(){
return “hello”;
}
}
“`
s
Vue.js と Spring Boot を連携基本
# 1. Spring Boot で REST API を構築する
まずはバックエンド側の Spring Boot で、簡単な REST API を作成します。このAPIは、ユーザーのリストを返すエンドポイントを提供します。### Spring Boot の準備
Spring Initializr を使って、新しい Spring Boot プロジェクトを作成します。Web依存関係を追加しておきましょう。コントローラーの作成
次に、UserController というコントローラーを作成し、ユーザー情報を返すエンドポイントを定義します。“`java
@RestController
@RequestMapping(“/api”)
public class UserController {@GetMapping(“/users”)
public ListgetUsers() {
// ユーザーリストを返す
return List.of(new User(1, “Alice”), new User(2, “Bob”
Java と C# での違い
## JavaとC#のひっかりやすい違い
C#使用者がJavaを使用するにあたり、ひっかかりやすい違いをまとめるここでの違いは全ての違いを網羅しているわけではないので、
用法要領を守り正しくお使いください。## Javaのprivate はpublicの内部クラスでしか使えない
“`java.java
public class MyClass {
// このクラスは public なので他のパッケージからもアクセス可能
private class PrivateClass {
}
}class DefaultClass {
// このクラスはデフォルトアクセスなので同じパッケージ内のみでアクセス可能
}
“`“`C#.cs
// Program.cs
namespace TestApp
{
public class MyClass
{
}
private class PrivatelClass
{
//C#はprivateで内部クラスが定義できる
}
}
“`##
JavaServlet
勉強中のため自分用のアプリケーションです。
Eclipseを使用してます:desktop:## Java Servlet
Javaのプログラムの一種で、主にWebアプリケーションでサーバーサイド処理を行う為の技術。## 主な役割
**・リクエスト処理**
クライアントから送信されたデータを受け取る**・ビジネスロック実行**
サーバーサイドの処理(データベース操作)を行う。**・レスポンス作成**
処理結果を基にクライアントにデータを返すHTML, JSON, XMLなど)。## メリット
**・プラットフォームに依存しない**
javaで実装されているため、javaが動作するプラットフォームであればどこでも動かすことができる。Windows、Linux、macOSなど様々な環境で動作できる**・ライフリサイクル管理が容易**
ライフリサイクル(生成→初期化→リクエスト処理→破棄)は、サーバが自動的に管理。リソース管理やエラーハンドリングがシンプルになる。**・セキュリティ**
Javaのセキュリティ機能を活用することで、安全なWebアプリケーションを構築
Eclipseのビューを自分で作る【Eclipse + ChatGPT】
Eclipseのビューを自分で作成する方法を紹介したいと思います。
今回はEclipse2023 + JavaSE17 を使っていきます。
また後半ではEclipseとChatGPTという不思議な組み合わせを実装します。# PDE (Plug-in Development Environment)のインストール
**「ヘルプ」 > 「新規ソフトウェアのインストール」**
から作業対象に
https://download.eclipse.org/releases/latest
と入力し、「一般用ツール」から「Eclipse プラグイン開発環境」をインストール![unnamed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3841947/37a1719c-3a2a-4827-8fc3-60779d5ef0de.png)
表示される条項などに同意し、インストール後に再起動する (筆者はpleiades以下の”eclipse.exe -clean.cmd”によりキャッシュを削除して再起動しないと次の
paizaラーニングレベルアップ問題集をJavaでやってみた
paiza×Qiita記事投稿キャンペーンということで、キャンペーン対象問題25問をJavaで解いてみました。
– – –
###### [文字の一致](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str)
“`java
import java.util.*;public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextLine().equals(sc.nextLine()) ? “OK” : “NG”);
sc.close();
}
}
“`
– – –
###### [一番小さい値](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num)
“`java
import java.util.*;public class Main
MyBatisで複数のDBに接続する
## DB接続設定ファイル(yml)
今回は以下の設定を行う
– application.ymlにdatasource2を追加する
– 一方はSQL Server、もう一方はOracle DBに接続する
“`yaml:application.yml
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://localhost:1433;databaseName=maindb
username: hoge
password: hogehoge
datasource2:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@//localhost:1521/oracledb
username: hoge2
password: hogehoge2
“`## Spring
Eclipse Java でpackageを使用する
## この記事の内容
Eclipseはじめて触る人がPackageを使えるまで最終的なpackageのフォルダ構成
“`
PackageTest/
└── src/
└── test/
├── another.pg/
│ ├── MathUtils.java
│ └── package-info.java
└── pg/
├── Main.java
└── package-info.java“`
## やり方 初期設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/ca515094-e07d-1aea-5cab-e08f3cc0bebe.png)
起動時の画面ファイル>新規>JavaProject
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazona
JavaでCSVを読み込むサンプル
郵便局が公開している[郵便番号の全国データ](https://www.post.japanpost.jp/zipcode/dl/kogaki-zip.html) (KEN_ALL.CSV)を読み込み、都道府県ごとに郵便番号の数をカウントしてみます。標準入力からcsvを渡すこととします。
“`java: ReadCsv.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;public class ReadCsv {
public static void main(String[] args) {
MapprefCount = new HashMap<>();
try (BufferedReader br = new BufferedReader(new InputStre
Template Methodパターンとは?
※最近デザインパターンを勉強し直そうと思って読んだ[この書籍](https://www.hyuki.com/dp/)を自分なりにまとめていっている記事です。
※この記事ではTemplate Methodパターンについて書いています。ソフトウェア開発において、類似した手順を持つ処理をいくつも抱えている場合、どのようにしてコードの一貫性と再利用性を確保しますか?例えば、複数の種類のレポートを生成するアプリケーションや、異なる種類のデータを処理するウェブアプリケーション。これらのシナリオでは、共通の処理フローを確保しながら、特定の部分でカスタマイズが必要になります。Template Methodパターンは、こうした問題を解決するための有用なデザインパターンです。
## Template Methodパターンとは?
Template Methodパターンは、スーパークラスにアルゴリズムの骨組みを定義し、サブクラスでその具体的なステップを実装するデザインパターンです。これにより、アルゴリズム全体の構造を変えずに、サブクラスで部分的に処理を変更できます。
### よくあるシナリオ
–
GradleとTomcatを使ったJava Servletアプリのデプロイ方法
EclipseなどのIDEは使わずCLIのみでHello Worldアプリのデプロイまでおこなった。備忘録。
# 確認済み環境
– Mac OS
– OpenJDK 17.0.12
– Gradle 8.10
– Tomcat 10.1.28# 手順
1. ディレクトリ作成
“`bash
$ mkdir HelloWorldServlet && cd HelloWorldServlet
“`2. Terminalで`gradle init`を実行。実行後聞かれる設定は以下。
– Select type of build to generate: 1. Application
– Select implementation language: 1. Java
– target Java version: 17
– Project name: HelloWorldServlet
– Select application structure: 1. Single application project
カスタムEnumValidアノテーションで有効性検証を実装してみました。
## はじめて
最近の作業中にEnumValidを定義した話をしようと思います。
– 私は韓国人として、日本語の勉強とコンピュータの勉強を同時に行うために、ここに文章を書きます
– 翻訳機の助けを借りて書かれた文章なので、誤りがあるかもしれません## なぜ作成したのか?
“`java
@Operation(summary = “サブクエスト修正”, description = “サブクエストを修正します。許可された値:ENABLE、DISABLE”)
@PatchMapping(“/{questId}/{subQuestId}”)
@ImageUploader
@AdminOnly
public ResponseEntity updateSubQuest(@PathVariable Long questId,
@PathVariable Long subQuestId,
@RequestBody @Valid SubQuestUpdateRequest subQuestUpdateRequest) {
final SubQuestR
[Android その1] Androidの基礎
# この記事について
Androidアプリケーション開発について興味があるので、調べつつ、アウトプットとして記載をしたいと思います。
特に、__4. アプリケーションの基本要素__ について記載を進めていこうと思います。
また言語はJavaで書いていこうと思います。ですが、後々にKotlinでの記載も進めていきます。# Androidについて
Androidは、Googleが開発したオープンソースのモバイルオペレーションシステムです。主にスマートフォンやタブレットで使われており、世界中で非常に広く普及しています。## 1\. Androidの構成
Android システムは主に以下のコンポーネントで構成されています:
* __Linux カーネル__: Android の基礎は Linux カーネルで、メモリ管理、プロセス管理、ネットワークプロトコルスタックなどの基本的なシステム機能を提供します。
* __ハードウェア抽象化レイヤー (HAL)__: ハードウェアと上位層のソフトウェア間のインターフェースを提供し、Android がさまざまなハードウェアに対応できるようにし
Java Silver試験対策:初心者エンジニアのための完全ガイド
## はじめに
Javaエンジニアを目指す皆さん、こんにちは!今回は、Java Silver試験の対策について詳しく解説していきます。15章に分けて、重要なポイントと練習問題を紹介します。それでは、さっそく始めましょう!
## 1. Javaプログラミングの基礎
Javaの基本構文や変数の扱い方を学びます。
**練習問題:**
次のコードの出力は何ですか?“`java
public class HelloWorld {
public static void main(String[] args) {
int x = 5;
System.out.println(x++);
}
}
“`a) 5
b) 6
c) コンパイルエラー
d) 実行時エラー**答え: a) 5**
後置インクリメント演算子(x++)は、現在の値を返してから増加させます。## 2. オブジェクト指向プログラミング
クラスとオブジェクトの概念を理解しましょう。
**練習問題:**
以下のコードで正しいのはどれですか?“`java
cl
SpringBoot + Thymeleaf バリデーションエラーの表示
## 記載内容
画面上の入力フォームに馬影デーションエラーを表示させる際の実装方法について記述します。## 目次
・Formクラス
・Controllerクラス
・Thymeleaf## Formクラス
“`java:UserForm.java
@Data
public class UserForm {
private String name;
private String email;
private String password;
}
“`## Controller
“`java:UserController.java@Controller
public class UserController {/**
* ユーザー情報 Service
*/
@Autowired
private UserService userService;@GetMapping(“/form”)
public String form(
@ModelAttribute UserForm user