- 1. 開発未経験の素人がSpringBoot & AWSでポートフォリオを作成したら
- 2. auカブコム証券のkabuステーションPUSH APIで受信した気配情報対応
- 3. JavaのServlet(サーブレット)でHello World.
- 4. 【Java】Hello, World!を出力する
- 5. 【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(2)
- 6. 1回だけ発動するClickEventを作る
- 7. Java on Azure 実践開発【Blob Upload ④: 署名付き URL を使ったアップロード編】
- 8. Java on Azure 実践開発【Blob Upload ③: 定期アップロード編】
- 9. Java on Azure 実践開発【Blob Upload ②: App Service ローカル保存後アップロード編】
- 10. Java on Azure 実践開発【Blob Upload ①: ストリームライクなアップロード編】
- 11. Java on Azure 実践開発【Blob Upload ⓪: はじめに】
- 12. 【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(1)
- 13. Java Byte Code
- 14. bouncyCastleのrijndealクラスをpowershellで再現する
- 15. JPAとは
- 16. SpringSecurityでCORSの設定
- 17. PostgreSQL — CopyManagerで高速コピー
- 18. auカブコム証券のkabuステーションPUSH APIを受信してCSVファイルへ保存する(複数銘柄対応版)
- 19. Java 2週目
- 20. Helidon JPA アプリのデータベース接続を Oracle にして、更に GraalVM でネイティブ・イメージにしてみた
開発未経験の素人がSpringBoot & AWSでポートフォリオを作成したら
この度ポートフォリオとして、SpringBootで食事記録管理アプリを作成いたしました。
こちらの記事では、アプリの機能などを紹介していきます。
実際のアプリは下記のURLからご利用可能です。https://www.boyaki-dining.com
# どんなアプリ?
健康に関する悩みやグチを相談,共有できる食事管理アプリです。
# 何が出来る?
## 日々の食事の記録がつけられる
・食事の記録を投稿・編集・削除できる
・記録はカレンダー形式で表示されるので、いつ何を食べたかスグに振り返ることが出来る

2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック
JavaのServlet(サーブレット)でHello World.
## 環境
– Windows 11
– eclipse 2022-06 [※こちらから日本語版がDownloadできます。](https://mergedoc.osdn.jp/)
– Java, Tomcatは任意のバージョンでどうぞ。
#### 1. プロジェクトの作成
– eclipseの「パッケージ・エクスプローラー」で「動的Webプロジェクトを作成します」を選択し、プロジェクトを作成します。


dmgがダウンロードされるので、手順に沿ってインストールすれば完了です。
ちなみに今回の環境は下記の通り。
– java: version “18.0.1.1”
– macOS: 12.3.1 (21E258)## ソースコードの作成
`Main.java`を作成して、下記のコードを記述します。
“`java: Main.java
public
【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(2)
# はじめに
[CAP(SAP Cloud Application Programming Model)](https://cap.cloud.sap/docs/)を利用してBTP環境にデプロイするODataAPIを作ってみます。(Java)
前回の記事ではサンプルを使ってCAPアプリケーション開発の全体的な流れを確認できたので、今回は自分で定義したデータモデルをサービスとして公開してみます。
また、カスタムロジックでODataリクエスト処理(CRUD処理)を試してみます。
【前回】
[【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(1)](https://qiita.com/yonekura-h/items/594de263631726b8881a)# 前提
(1)があるので事前準備等は参考にしてください
[CAPプロジェクトの作成](https://qiita.com/yonekura-h/items/594de263631726b8881a#cap%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%
1回だけ発動するClickEventを作る
# 1回だけ発動するClickEventを作る ~Spigot~
ちょっとしたメモ程度に書くことにします。
初めての投稿なので読みにくくなってしまっているかもしれませんがどうぞ。## ClickEventが何度も発動してしまう
「一度だけクリックして処理を行うことのできるチャットメッセージ」を送信できるようにしたいなと思い様々なところのスレッドを覗いてみて、どうにかこうにか
* クリックしたら様々な処理が実行されるメッセージを作成することができた。
しかしそのメッセージはクリックされると何度でも処理を行ってしまう。
一度だけ行いたい処理を任せようと思っていたがこれではいけない。
「only once」など私の貧相なボキャブラリの中から絞り出した英単語を並べて検索をしてみるも、Javaに触れ始めて1週間も経っていない私にはなんだか難しい魔法の解説をしているようにしか見えなかった。
早い話が理解することができなかったのだ。というわけで、無い頭からアイデアを絞りだしてどうにかこうにか形になるものを作ってみたので書き残してみる。
## ClickEventと独自コマンドのリレ
Java on Azure 実践開発【Blob Upload ④: 署名付き URL を使ったアップロード編】
## はじめに
本記事は、『Java on Azure 実践開発 Blob Upload』シリーズの第4回「期限付き URL を使ったアップロード」編です。
サンプルコードは、[kohei3110/JavaOnAzure-BlobStorage](https://github.com/kohei3110/JavaOnAzure-BlobStorage) に上がっています。## シナリオ概説
本シリーズでは、Blob Storage へのファイルアップロードについて、Azure を使った Java アプリケーションのサンプルコードを使用しながら、開発方法をご紹介します。
一口にファイルアップロードといっても、あらゆる方式があるかと思います。例えば、以下のようなものがあります。
| No. | シナリオ | 概要 | 記事 URL |
| :— | :— | :— | :— |
| 1 | サーバー経由でのストリームライクなアップロード | SAS の流出を懸念する場合、サーバー経由でのストリームライクなアップロード | [Java on Azure 実践開発
Java on Azure 実践開発【Blob Upload ③: 定期アップロード編】
## はじめに
本記事は、『Java on Azure 実践開発 Blob Upload』シリーズの第3回「定期アップロード」編です。
サンプルコードは、[kohei3110/JavaOnAzure-BlobStorage](https://github.com/kohei3110/JavaOnAzure-BlobStorage) に上がっています。## シナリオ概説
本シリーズでは、Blob Storage へのファイルアップロードについて、Azure を使った Java アプリケーションのサンプルコードを使用しながら、開発方法をご紹介します。
一口にファイルアップロードといっても、あらゆる方式があるかと思います。例えば、以下のようなものがあります。
| No. | シナリオ | 概要 | 記事 URL |
| :— | :— | :— | :— |
| 1 | サーバー経由でのストリームライクなアップロード | SAS の流出を懸念する場合、サーバー経由でのストリームライクなアップロード | [Java on Azure 実践開発【Blob Uploa
Java on Azure 実践開発【Blob Upload ②: App Service ローカル保存後アップロード編】
## はじめに
本記事は、『Java on Azure 実践開発 Blob Upload』シリーズの第2回「App Service ローカル保存後アップロード」編です。
サンプルコードは、[kohei3110/JavaOnAzure-BlobStorage](https://github.com/kohei3110/JavaOnAzure-BlobStorage) に上がっています。## シナリオ概説
本シリーズでは、Blob Storage へのファイルアップロードについて、Azure を使った Java アプリケーションのサンプルコードを使用しながら、開発方法をご紹介します。
一口にファイルアップロードといっても、あらゆる方式があるかと思います。例えば、以下のようなものがあります。
| No. | シナリオ | 概要 | 記事 URL |
| :— | :— | :— | :— |
| 1 | サーバー経由でのストリームライクなアップロード | SAS の流出を懸念する場合、サーバー経由でのストリームライクなアップロード | [Java on Azur
Java on Azure 実践開発【Blob Upload ①: ストリームライクなアップロード編】
## はじめに
本記事は、『Java on Azure 実践開発 Blob Upload』シリーズの第1回「ストリームライクなアップロード」編です。
サンプルコードは、[kohei3110/JavaOnAzure-BlobStorage](https://github.com/kohei3110/JavaOnAzure-BlobStorage) に上がっています。## シナリオ概説
本シリーズでは、Blob Storage へのファイルアップロードについて、Azure を使った Java アプリケーションのサンプルコードを使用しながら、開発方法をご紹介します。
一口にファイルアップロードといっても、あらゆる方式があるかと思います。例えば、以下のようなものがあります。
| No. | シナリオ | 概要 | 記事 URL |
| :— | :— | :— | :— |
| 1 | サーバー経由でのストリームライクなアップロード | SAS の流出を懸念する場合、サーバー経由でのストリームライクなアップロード | [Java on Azure 実践開発【Blo
Java on Azure 実践開発【Blob Upload ⓪: はじめに】
## はじめに
今回から5回に分けて、Azure で Java アプリケーションを開発する際に現場で役立ちそうなポイントを、実装上のハマりどころなどを交えながらご紹介いたします。
第一弾のシナリオは、「**Blob ストレージへのアップロード**」です。
サンプルコードは以下に格納しています。
参考: 『[kohei3110/JavaOnAzure-BlobStorage](https://github.com/kohei3110/JavaOnAzure-BlobStorage)』
## シナリオ概説
本シリーズでは、Blob Storage へのアップロードについて、Azure を使った Java アプリケーションのサンプルコードを使用しながら、開発方法をご紹介します。
一口に Blob アップロードといっても、あらゆる方式があるかと思います。
まず、クライアントから Blob をアップロードする場合、SAS を使ってアップロードする選択肢があります。サーバーを経由せず、Blob ストレージとクライアントのみの通信になるため、パフォーマンスが他の選択肢に比べてよいで
【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(1)
# はじめに
[CAP(SAP Cloud Application Programming Model)](https://cap.cloud.sap/docs/)を利用してBTP環境にデプロイするODataAPIを作ってみます。
以前にも一度試しているものの、WebIDEベースの開発であり、最近では使えないこともあるのでBusiness Application Studioで実施しました。
今回の手順だとVSCodeなどのローカル開発環境でもほぼ同様に作れると思います。
[SAP CP Trial環境でMulti Target Applicationを作ってみる【ODataService_V2の作成】](https://qiita.com/yonekura-h/items/62abe8b4ff1a747bd2e9)BTPでのJava開発には[SAP Cloud SDK](https://sap.github.io/cloud-sdk/docs/overview/overview-cloud-sdk)もあり、CAPプロジェクトとの統合も可能です。
SAP Cloud SDKには
Java Byte Code
Java Byte Code
Java Virtual Machine
を知るためのリンクJava class file
https://en.wikipedia.org/wiki/Java_class_fileThe class File Format
https://jcp.org/aboutJava/communityprocess/maintenance/jsr924/JVMS-SE5.0-Ch4-ClassFile.pdfJava bytecode
https://en.wikipedia.org/wiki/Java_bytecodeJava virtual machine
https://en.wikipedia.org/wiki/Java_virtual_machineList of Java bytecode instructions
https://en.wikipedia.org/wiki/List_of_Java_bytecode_instructionsJava仮想マシン
https://ja.wikipedia.org/wiki/Jav
bouncyCastleのrijndealクラスをpowershellで再現する
## 目的
bouncyCastleで使われていたjavaのrijndealクラスによる暗号化、復号処理をpowershellで再現する内容
鍵長は256ビットになっていなければならない。
## rijndealとは
暗号化処理の規約になったAESとして採用された暗号化方法IV(Initial Vector)と内容を暗号化した文字列を使って
暗号化文字列が作られている。この時暗号化した文字列(鍵長)を128ビット、192ビット、256ビットの3つを選ぶことができた。
AESは統一化のために、128ビットで固定化されている。
## RijnDealクラスをPowerShellで実装する際の注意
powershellは.NETで構成されているが
AESの暗号化のロジックだとうまく作れない。
rijndealだと鍵長を256ビットにできるが、AESでは128ビット固定になってしまう。128ビット以外はエラーになってしまう。
https://sp.otsuka-shokai.co.jp/words/aes.html#:~:text=AES%E3%81%A8%E3%81%AF
JPAとは
1. JPA(Java Persistence API)
Javaプログラミング時、永久にデータを保存するために必要なAPI。
API(Application Programming Interface)とは、ソフトウェアやアプリケーションの機能を他のソフトウェアと共有すること。共有する側とされる側の上下関係が存在。
JPAはJavaでクラスを作成し、それに基づいてDBテーブルを自動生成する技術
2. ORM(Object Relational Mapping)機能
オブジェクトをDBに接続する方法で、まずJavaでデータを作成し、それをDBデータにしてくれる機能。
3. JPA機能の1つであるCRUD関数を使用すれば、面倒なロジックを必要とせずにJavaからDBに簡単にデータ変換が可能になる。
CRUD:Create(Insert),Read(Select, Select All),Update(Update),Delete(Delete)
4. Persistence Context 永続性コンテキスト
contextはあるもののすべての情報を示
SpringSecurityでCORSの設定
SpirngSecurityでCORSの許可方法は以下の処理になります。
“`java:WebSecurityConfig
/**
* CORS設定
*/
@Bean
CorsConfigurationSource corsConfigurationSource() {CorsConfiguration configuration = new CorsConfiguration();
//CORSで許可する値を設定
//許可するURIを設定 レスポンス側のURI
configuration.setAllowedOrigins(List.of(“http://localhost:3000”));//許可するメソッドを設定 GET,POST,PUT,DELETE
configuration.setAllowedMethods(Arrays.asList(“GET”, “POST”));//許可するヘッダーを設定 Content-Type等、、、
configuration.set
PostgreSQL — CopyManagerで高速コピー
postgreSQL でテーブルをコピーするとき、javaからCopyManagerを使うと速いらしいので、検索してみたが、一回ファイルに落とすサンプルばかりで、直接コピーしてるものがなかなか見つからなかったので、誰かの役にたつかなっと思い投稿してみました。
↓ の ソースは、前半コピー元テーブルにファイルからコピーして、後半、コピー元テーブルからダイレクトにコピー先テーブルへコピーします。
ポイントはコピー元テーブルからの読み込みで、PGCopyInputStream()を使用しますが、その時CopyManager()で使用するコネクションとは別のコネクションをもう一つ用意しないとダメってところです。
ここで、結構ハマりましたが、よくよく考えるとinとoutで同じファイルディスクリプタを使えないのと同じ理屈でした。public static void main(String[] args) throws Exception {
if(args.length!=4) {
System.out.println(“Please speci
auカブコム証券のkabuステーションPUSH APIを受信してCSVファイルへ保存する(複数銘柄対応版)
# はじめに
前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック
Java 2週目
第2週目 Jump to java 読み
ジャワはオブジェクト指向言語である
ジャワはオブジェクト指向(ObjectOriented)プログラミング言語である。
オブジェクト指向にはクラス、オブジェクト、インスタンス、相続、インタフェース、多形成、抽象化などの多くの概念が存在する。class Animal {
}
最も簡単な形のクラスだ。 クラスの宣言だけあって中身のない殻だけのクラスだ。 しかし、この殻だけのクラスも非常に重要な機能を持っている。 その機能はオブジェクトを作る機能である。public class Sample {
public static void main(String[] args) {
Animal cat = new Animal();
}
}簡単なクラス宣言により、数多くのオブジェクト生成が可能である。
クラスによって作られたオブジェクトをインスタンスともいう。 それでは客体とインスタンスの違いは何だろうか。
こう考えてみよう。 Animalcat=newAnimal()このように作られたcatはオブジェクトである。 そしてcatというオブジ
Helidon JPA アプリのデータベース接続を Oracle にして、更に GraalVM でネイティブ・イメージにしてみた
# はじめに
マイクロサービス向けの Java フレームワーク [Helidon](https://helidon.io/) は GraalVM のネイティブ・イメージ作成に対応していますが、実践的な構成でもネイティブ・イメージにできるか、検証してみたいと思います。
具体的には、Helidon MP を使って
( REST Client ) → JAX-RS → JPA/JTA → Oracle JDBC Driver → ( Oracle Database )
のスタックで構成されるサーバ・アプリケーションをネイティブ・イメージにできるか&正常動作するか試してみましょう。
# 手順
1. GraalVM, Maven, Oracle Database, Helidon CLI の準備
1. Helidon CLI を使って JPA