- 1. Google Web Toolkit入門:Javaデベロッパーのための強力なWebアプリケーションフレームワーク
- 2. Cucumberを使用したJavaテスト自動化の完全ガイド
- 3. Spring Boot入門:基礎から実践まで
- 4. 正しい形式で入力されるまで再入力させるメソッド
- 5. NetBeans環境構築 なぞの不具合
- 6. NetBeansをZip版でセットアップする方法(Windows11向け)
- 7. [Java]String型の配列をint型の配列に変換する
- 8. H2コンソールでデータベースの新規作成ができなかった時
- 9. VScodeプラグイン 各言語おすすめ
- 10. 初めてのC++ ~JavaとC言語との違い~
- 11. Tomcatのデフォルトはリクエストパスに%2fを含むと400を返す
- 12. AndroidアプリにUnity as a Libraryを導入する
- 13. Azure Functions を Azure Container Apps にデプロイする 2 種類の方法の比較について
- 14. 【Java & Spring】オリジナルのバリデーターを作成しよう
- 15. Java コードの基本
- 16. Javaの準備
- 17. 【Spring Data MongoDB】Document用のクラスにenumのプロパティを設定してみる
- 18. Azure Container Apps に対して Java Azure Function on Linnux Container をデプロイ
- 19. JAVAでRSA暗号化を使用する方法
- 20. Java Gold 例題 ResourceBundle
Google Web Toolkit入門:Javaデベロッパーのための強力なWebアプリケーションフレームワーク
## はじめに
Google Web Toolkit(GWT)は、JavaデベロッパーがHTML5とJavaScriptを使用して高性能なWebアプリケーションを構築するためのオープンソースフレームワークです。GWTを使用することで、JavaコードをJavaScriptに変換し、クロスブラウザ対応の洗練されたユーザーインターフェースを作成することができます。
この記事では、GWTの基本から応用まで、15章にわたって詳しく解説していきます。各章では、概念の説明と実践的なコード例を提供し、GWTの理解を深めていきましょう。
## 第1章:GWTの基礎
GWTは、JavaデベロッパーがWebアプリケーションを効率的に開発するためのツールセットです。主な特徴として、JavaからJavaScriptへのコンパイル、クロスブラウザ互換性、そしてリッチなユーザーインターフェースの構築が挙げられます。
まずは、簡単なHello Worldアプリケーションを作成してみましょう。
“`java
package com.example.myapp.client;import com.goo
Cucumberを使用したJavaテスト自動化の完全ガイド
## はじめに
こんにちは!今回は、Javaプロジェクトでのテスト自動化に欠かせないツールであるCucumberについて、詳しく解説していきます。Cucumberを使うことで、開発者だけでなく、ビジネス側の方々も理解しやすいテストシナリオを作成できます。それでは、Cucumberの基本から応用まで、15章に渡ってご紹介していきましょう。
## 第1章: Cucumberとは
Cucumberは、振る舞い駆動開発(BDD)をサポートするオープンソースのテスティングツールです。人間が読みやすい形式でテストシナリオを記述し、それを自動化されたテストとして実行することができます。
Cucumberの主な特徴は以下の通りです:
– 自然言語でテストシナリオを記述
– 開発者とビジネス側のコミュニケーションを促進
– 多言語対応(日本語でのシナリオ記述も可能)
– Javaを含む多くのプログラミング言語をサポート## 第2章: Cucumberのセットアップ
まずは、Javaプロジェクトにおいて、Cucumberをセットアップする方法を見ていきましょう。
1. Mavenを使用し
Spring Boot入門:基礎から実践まで
## はじめに
Spring Bootは、Javaベースの強力なフレームワークで、効率的で迅速なアプリケーション開発を可能にします。この記事では、Spring Bootの基本から応用まで、15章にわたって詳しく解説します。各章では、概念の説明と実践的なコード例を提供し、初心者から中級者まで幅広い読者に役立つ内容となっています。
## 第1章:Spring Bootの概要
Spring Bootは、Spring フレームワークの上に構築された革新的なツールです。従来のSpringアプリケーションの複雑な設定を大幅に簡素化し、開発者が核心的なビジネスロジックに集中できるようにします。
主な特徴:
– 自動設定
– スタンドアロン実行可能なJARファイル
– 組み込みサーバー
– プロダクション対応の機能以下は、最小限のSpring Bootアプリケーションの例です:
“`java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.S
正しい形式で入力されるまで再入力させるメソッド
備忘録で書きました。
#### プログラムについて
`inUserName`メソッド:
1.`input`で文字列を受け取り、`checkName`メソッドで判定する。
2.`checkName`メソッドで判定が通ったら`userName`に代入する。
3.`userName`を返す。`checkName`メソッド:
`input`の値が「大文字1~10文字以内の文字列」に当てはまらない場合は再入力を要求する。## だめだったやつ
最初に入力した文字が戻り値になってしまうので、`checkName`メソッドで再入力しても修正されていない不具合が発生します。
###### 筆者の勘違い:`checkName`メソッドの戻り値が自動的に`inUserName`にある`input`の値を上書きすると思っていました“`diff_java
public String inUserName(){
System.out.println(“ローマ字(大文字のみ)でユーザー名を入力してください…”);
String input = new Scanner(System.in).nex
NetBeans環境構築 なぞの不具合
# NetBeansのセットアップでなぞの不具合が発生し、解決できたので情報共有します
### 不具合の詳細
![スクリーンショット 2024-09-12 125150.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3881962/824a0164-dc49-4f0f-d111-53f31f4f1907.png)NetBeansの公式サイトからexeファイルをダウンロードした後に起動したところ、このように固まってしまった。
パソコンの詳細
windows11
JDK ver.17.0 (22.0にバージョンアップしたが効果は無し。)
NetBeans Ver.22この不具合ではエラー文がなにもでないので、たちが悪い。
JDKのバージョンを最新版に更新、管理者として実行。
さまざま試したが、解決せず。## 解決策
Exeファイルからの起動だと不具合がおきるが、Zipファイルからの起動だと正常に動作した。
Zipファイルからのセットアップの手順はこちらからhttps://qiita.c
NetBeansをZip版でセットアップする方法(Windows11向け)
# NetBeansをZip版でセットアップする方法(Windows向け)
NetBeansのインストーラーがうまく動作しない場合や、手動でセットアップしたい場合、Zip版を使用することで解決できます。この記事では、Zip版のNetBeansをWindows環境にセットアップする手順を詳しく解説します。1. Zipファイルの解凍
解凍先の選択
まず、NetBeansを配置するフォルダを選びます。以下の点に注意してください:パスに日本語やスペースを含めないこと。
管理者権限を必要としないディレクトリであること。
例として、C:\NetBeansフォルダを作成します。## 解凍
ダウンロードしたZipファイルを右クリックします。
「すべて展開」を選択します。
解凍先に先ほど作成したC:\NetBeansを指定します。
または、お好みの解凍ソフト(7-ZipやWinRARなど)を使用して解凍します。2. NetBeansの起動
実行ファイルの場所
解凍したフォルダ内のnetbeans\binディレクトリに移動します。## NetBeansの起動
netbeans64.ex
[Java]String型の配列をint型の配列に変換する
# はじめに
ネット上のスキルチェック問題などを解いていてよく出くわすのでメモがわりに。# 問題
“`
“123456”
“`
という文字列型の数値の入力を
“`
[1, 2, 3, 4, 5, 6]
“`
と、数値型の配列に変換する。
# 解決方法
“`java
// 問題で与えられる入力
String input = “123456”;// Stringの文字列で入力を受け取る
String[] strArr = input.split(“”);// int型の配列に変換
int[] numArr = Stream.of(strArr).mapToInt(Integer::parseInt).toArray();System.out.println(Arrays.toString(numArr)); // [1,2,3,4,5,6]
“`
# おわりに
streamは中間処理をよく忘れるのでメモメモ。
H2コンソールでデータベースの新規作成ができなかった時
# H2コンソールで新規データベースの作成ができなかった時にやったこと
備忘録
Windows
データベースをjavaでいじる練習をするときに
H2 Consoleでいつものように
jdbc:h2:tcp://localhost/~/〇〇で接続を押して新しいデータベースを作成しようとしたら
![タイトルなし.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884251/a04747b2-474e-8dfb-5a3a-3aa5898498b2.jpeg)
警告文が出てきて作れなかった。前は作れたのになぜなんだ・・・
とりあえずデータベースが作れないと進められない!分からないなりに調べてみると黄色いアイコンの
H2 database Engine ってやつで新しくデータベースを作れるみたい
![イトルなし.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884251/d6a60f30-6d76-fa5b-
VScodeプラグイン 各言語おすすめ
VScodeの拡張機能について各言語ごとにまとめる
## 共通
### Japanese Language Pack
日本語化するための言語化パック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/dab28482-ae62-81f6-c8c9-d89dad705f12.png)### Code Spell Checker
スペルチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/b106fc87-20c2-9cf9-b235-b6c52f836d0e.png)### vscode-icons
アイコン表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/48d74c47-fa84-433c-461b-f448ab0c9157.p
初めてのC++ ~JavaとC言語との違い~
## はじめに
この記事は、
**初めてC++を学ぶ方**や、**既にJavaやC言語を学び、次にC++を学ぶ方**
に向けて作成しました。C++の基礎を学び、JavaやC言語と比較しながらその特徴を理解していきます。
JavaやC言語の基礎知識がある方は、**これらを比較しながら学ぶことで**、より分かりやすく理解できるでしょう。
まだC言語を学習していない方は、以前に書いた[JavaとC言語を比較した記事](https://qiita.com/jp_paypay/items/fe322db0b97ea5fc02c9)を参考にすると、理解が深まると思います。この記事では、詳しいコードの説明には触れていませんので、興味がある方はぜひご自身でさらに調べてみてください。
## C++とは?
C++は、C言語を基盤にして開発された強力なプログラミング言語で、オブジェクト指向やジェネリックプログラミングの概念を取り入れた多重パラダイム言語です。
>マルチパラダイムプログラミング言語とは複数のプログラミングパラダイムに対応するプログラミング言語の総称です。
マルチパラダイムプロ
Tomcatのデフォルトはリクエストパスに%2fを含むと400を返す
> encodedSolidusHandling
> When set to reject request paths containing a %2f sequence will be rejected with a 400 response.
>
> https://tomcat.apache.org/tomcat-10.0-doc/config/http.html より抜粋よって、“`http://localhost:8080/hoge/%2F“` のようなURLにアクセスすると`@RestController`に辿り着かずTomcatが400を返す。
`http://localhost:8080/foo?hoge=%2F` とかクエリで渡す分にはOK。
AndroidアプリにUnity as a Libraryを導入する
## きっかけ
弊社で運用中のアバターを介してビデオ通話ができるSNSアプリがすべてUnityで実装されており、UI/UXのカスタムが非常に難しい状況でした。
そこでUaalを導入し、ビデオ通話中のアバターの表示やプロフィールアバターの表示等はUnity、それ以外のSNS機能やサーバーとの通信はネイティブで行うことで役割分担を進めようと方針が決まりました。## Unity as a Libraryとは
>Unity as a Libraryとは、ゲームエンジンUnityで開発した機能をAndroidやiOSのNativeアプリにモジュールとして組み込む技術です利用用途として、例えば3D描画のあるSNSアプリを作りたいとなったとします。Unityは3D描画部分の開発に強いですが、SNS部分は弱いです。逆にNativeはSNS部分の開発に強いですが、3D部分はそこまで強くありません。そのようなときに、Unity as a Libraryを使うと、3D部分は3Dに強いUnityで作り、SNS部分はNativeで作ることが可能になります。
このように、Unityが強い部分はUnity
Azure Functions を Azure Container Apps にデプロイする 2 種類の方法の比較について
昨日、「[Azure Container Apps に対して Java Azure Function on Linnux Container をデプロイ](https://qiita.com/yoshioterada/items/0ef6c1a0ffd65bf3cace)」というエントリを記載しました。
エントリ中に「統合された Azure の管理ポータルを使用」と記載しましたが、これが何を意味するのか、そして今までと何が違うのかを明確にするために、本エントリで今までとの違いとメリットについて記載したいと思います。
* 旧来の方法: `az containerapp create` で作成
* 新しい方法: `az functionapp create` で作成## 旧来の方法: `az containerapp create` で作成
Azure Container Apps は Azure のコンテナ実行環境の一つとして提供されています。そこでコンテナ化されたサービスであれば任意のサービスを動作させる事ができます。
その意味で、今までも Azure Functions
【Java & Spring】オリジナルのバリデーターを作成しよう
## 目標
ユーザーの入力した値が、電話番号かどうかを判断するバリデータ(@PhoneNumber)を作成する。
ここでは入力値が「0~9と-のみ」の場合、電話番号と判断する。## 実装手順
- アノテーションクラスを作成する。
- バリデータークラスを作成する。
- バリデーションを使用する。
## 手順 1: アノテーションクラスの作成
まず、アノテーションを作成します。このアノテーションを利用して、入力値が電話番号かどうかを判定します。
“`java:
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java
Java コードの基本
## Javaのコードの構成について
“`java
class Ex1_03_2 { //クラスブロック
public static void main (String[] args) { //メソッドブロック(命令文は基本ここに記述)System.out.println(“Hello World!! Error is cleared!!” );
}
}
“`## 変数と定数について
### 変数
変数は、値の型によって使い分ける必要がある。“`
整数 (±128) 専用の変数には byte
整数 (±3万2千) 専用の変数には short
整数 (±21億) 専用の変数には int
整数 (±900京) 専用の変数には long小数点(doubleより厳密さに欠ける)専用の変数には float
小数点専用の変数には double1文字専用の変数には char
文字列専用の変数には String論理値専用の変数には boolean
“`※変数宣言と代入を同時に行うことを**初期化**という。
`int teika = 1000;`
Javaの準備
## JDKのインストール(AdoptOpenJDK)
IDEであるeclipse(Pleiades All in One)を使用してダウンロード&インストールする。
※IDEとは統合開発環境という意味で、エディタや実行環境、その他機能が含まれている。VSCodeもそう。
※Pleiades All in Oneはeclipseの上位互換で「日本語設定」、「環境変数設定」、「その他設定」が組み込まれている。## eclipseの準備
1. ビューをパッケージ・エクスプローラーだけにする
2. ビューでコンソールを追加
3. パッケージ・エクスプローラーで「Java プロジェクトの作成」を選択し、作成
4. srcでファイルをインポート > 一般 > ファイル・システム
## 実行方法
右クリックで以下を選択
【Spring Data MongoDB】Document用のクラスにenumのプロパティを設定してみる
## 概要
Spring Data MongoDBでは、[MongoDBでデータアクセス](https://spring.pleiades.io/guides/gs/accessing-data-mongodb)のドキュメントで紹介されている通り、Documentの保存・取得用にPOJOのクラスを使用してRepositoryを通してDBの操作が行えます。ではこのクラスにenumのプロパティを設定した場合、どういう動作になるかというメモ書きです。## 前提
* 今回使用したSpring Boot Starter Data MongoDBのバージョンは`3.3.3`です。## 動作確認用のクラス(Java)
以下のようにenumのプロパティを設定したクラスを、Repository経由で保存・取得した場合の動作を確認しました。
“`java:UrlDocument.java
@Document(collection = “url”)
public record UrlDocument(
@Field(“url_id”)
String urlId,
Azure Container Apps に対して Java Azure Function on Linnux Container をデプロイ
Azure Functions では、Azure Container Apps でコンテナー化した関数アプリを開発、デプロイ、管理するための統合サポートを提供しています。
これにより、Azure Kubernetes Service (AKS) などのコンテナー環境で Azure Functions を独自に実行するよりも、統合された Azure の管理ポータルを使用して、Azure Functions を簡単に実行・管理することができます。さらに Azure Container Apps が提供する機能を使用することで、Azure Functions に対して、KEDA、Dapr, Envoy、スケーリング、監視、セキュリティ、アクセス制御などの機能を簡単に利用することができます。参照:
[Azure Functions の Azure Container Apps ホスティング](https://learn.microsoft.com/azure/azure-functions/functions-container-apps-hosting)
[Azure Container
JAVAでRSA暗号化を使用する方法
# はじめに
業務をしながら暗号化を扱うことが多くてこの機会に整理しました。### 1. **暗号化方式 一目で確認できる表**
| 暗号化方式 | タイプ | 鍵管理 | 主な特徴と利点 | 使用例 |
|————–|————|———————–|—————————————————–|—————————————-|
| **RSA** | 非対称鍵 | 公開鍵 & 秘密鍵 | 公開鍵で暗号化し、秘密鍵で復号化および署名検証 | サーバー認証、電子署名、SSL/TLS通信 |
| **AES** | 対称鍵 | 同じ秘密鍵を使用 | 高速で
Java Gold 例題 ResourceBundle
次のコードのうち、非推奨とされる箇所があれば指摘してください。
“`java
try {
ResourceBundle bundle = ResourceBundle.getBundle(“MyResource”, Locale.US);
Properties props = new Properties();
bundle.keySet().stream()
.forEach(key -> props.put(key, bundle.getString(key)));
System.out.println(props.getProperty(“code”));} catch(MissingResourceException e) {
System.out.println(“リソースが見つかりません” + e.getMessage());
}
“``MyResource_en_US`
“`
code=hundred
“`解答