m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Java

play frameworkをVSCodeで開発環境を整える

VSCodeでコードを書く できなくはないはず、 ただJavaの開発環境とかの問題もあるから試す javaの拡張機能を導入 拡張の初期設定 Java11をインストール play2のプロジェクトを作成 前回と同じ % cd % cd work/java/play2 % sbt new playframework/play-java-…

playframeworkを試す(helloworldのみ)

環境 MacOS インストール環境 Javaのみ sbtをインストール brew install sbt ↓ % sbt version [info] welcome to sbt 1.5.1 (N/A Java 15.0.2) [info] loading project definition from /Users/xxxx/project [info] set current project to shigeharu (in bu…

Azure Storage ServiceでBlobの読み書きをJavaで行う

PHPではなく Java pom.xml <dependencies> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-storage</artifactId> <version>5.0.0</version> </dependency> </dependencies>

nodejsのsocket.ioのサーバにJavaで作成したクライアントで接続する

ソケット通信のサンプルって 基本TCP/IP関連のやつなんですね。 まあ、わかりますけど、websocketとか使う際はどんなデータが流れてくるとかどんな手法で送信したらよいとかちょっとわかりづらい事があります。 今回はJavaでsocket.ioのサンプルを探して見ま…

AWSのSESで送信者名を指定する

メール送信で日本語を使用したい 文字化け起こりましたのでネットを使用して調べました以下の対応でなんとかなりました。m(_ _)m 参考 [AWS][Java] Amazon SESで送信者名を表示させる | Developers.IO 実装 import java.io.UnsupportedEncodingException; i…

Spring Bootで画面からAPIへRest Templateでファイルを送信する

シンプルな使い方 jsonで送信する 難しそうな使い方 fileを送信する やりたいこと 画面からsubmitまたはajaxでファイルを送信する。 問題点 処理の流れが ①画面でファイルを指定する ②画面でsubmitする ③Rest Templateへファイルを送信するこの場合、ファイ…

WatsonのVisualRecognitionに画像をURLで指定

やること WatsonのVisualRecognitionへ画像情報を渡す際、ファイルとして送るのではなく、AWSのS3で作成した期限付きURL情報を渡して結果を取得したい。 実装 Sample1.java import java.io.File; import java.util.Arrays; import java.util.List; import co…

Spring Bootで簡易テストを行う

ぶっちゃけ 簡単じゃない 結構めんどくさい やりたいこと RestControllerをテストする Serviceなどを使用している場合はモック化する 実装 Sample01Controller package com.example.controller; import org.springframework.beans.factory.annotation.Autowi…

JavaのFreeMakerでテンプレート処理を行う2

インクルード処理を使う 1つのテンプレートの中に他のテンプレートファイルを読み込みます。 pom.xml <dependencies> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency> </dependencies> ml| テンプレートファイル sample2.…

Spring Bootでログを出力する

デバッグ中の場合とかにデータの動きを少しずつ確認したい場合など ログを出力して確認します。 System.out.printlnではよくわからない場合など… サンプル Sample01Controller package com.example.controller; import org.springframework.http.MediaType; …

JavaのFreeMakerでテンプレート処理を行う

テンプレート処理 HTMLなどでヘッダー部分やフッター部分など ある程度共通の部分は別ファイルで管理して読み込みたいことがありますのでテンプレートとして使用します。 FreeMaker Javaのテンプレートエンジンとのこと 仕事でJava使うのはほとんどなかった…

AWSのSESでメールを送信2

SESでメールを送信するもう1つの方法 を試してみる サンプル Sample02.java import java.util.Properties; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.regions.Region; import com.a…

AWSのSESでメール送信

SESはメール送信のサービスだった 忘れてた… 受信できるように設定できる以上、送信できるはず… やること SES用のアクセスキーを生成 メール送信制限を解除 リージョンを指定 実装 Sample01.java import com.amazonaws.auth.BasicAWSCredentials; import com…

Javaで2つの期間より差を検出する。

2つの日時より日数を取得したい ので簡単なやつを調査 年月日、時分秒の差を取得するサンプル Sample02.java package sample02; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; publi…

Javaで暗号化処理

なんか一括でやるのないの? ライブラリとしてはありそうですけどJava共通ではなさそう 参考資料 qiita.com 基本↑見て やりたいこと 指定の文字列にソルト文字列とかを設定して変な文字列にしたい… 実装 Sample01.java import java.security.MessageDigest; …

Spring Bootで設定ファイルのデータを取得する

設定ファイルというと iniファイルとかcsvファイルとか独自に用意したプロパティファイルとかあります。 プログラム内の固定値とかではなく実行環境(開発、本番)で設定値が変化する場合に切り替えたいもの Spring Bootの場合は application.properties が…

Javaで形態素解析ライブラリのkuromojiを使ってみた

形態素解析とかいうので 文字列を単語別に分割できるらしい 全文検索とか名刺だけを取得したい場合とかに使えそう pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelversion></project>

AWSのS3をMavenのパッケージを使用してアップロード、ダウンロードを実施

キーアクセスには ファイルの場合と設定ファイルなどよりキーの値より取得する2パターンがある 別途定数などに入れて扱いたいのでちょっと別の方法をやる BasicAWSCredentials パラメータに直接キーとシークレットキーを指定するのでキーの元がわかりやすい…

AWSのS3へJavaのSDKを使用してアップロード

AWSへプログラムよりアクセスする なんかやることが多くなってきた 準備 AWSのIAMでS3用のユーザーを作成し、アクセスキーとシークレットアクセスキーを取得 eclipseへ機能を追加 新規ソフトウェアのインストールで「https://aws.amazon.com/eclipse」を設定…

Spring Bootで画像を縮小して表示

画像を縮小する そもそも画像制御とかプログラムでほとんど書かないけどね 実装 Image01Controller.java package com.example.controller; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.ByteArra…

Spring BootでRestControllerで画像を出力する

簡単にresources配下にあるファイルを画面に表示する Spring Bootの場合は@RestControllerを返す場合は指定のデータを返却するような感じになるので返り値をバイナリ形式で返してみる。 やること 画像を読み込み byte[]へ変換して設定 jpegデータとして返却 …

Spring BootのRestTemplateでバイナリデータを取得する

RestTemplate Spring BootのAPI処理クラスと思われる Rest APIの場合は基本JSONなんだけど APIの結果としてはバイナリデータを受け取る場合もあるので取得したい 動作用API LINE APIのGet ContentAPIを使用 https://devdocs.line.me/ja/?shell#get-content …

Javaで動的にメソッドを呼び出す

動的にメソッドを呼び出す場合 PHPとかでは変数にメソッド名を設定すれば簡単に使用できるけどJavaの場合はリフレクションの機能を駆使する必要がある感じのよう 今回はクラスは全部同じものとして扱う。実際はパッケージは変わる可能性があるかも… 呼び出さ…

Spring BootのRestControllerで簡易テスト

テスト 目視チェックしか基本したことない だって作成するの面倒なんだもん つくったやつのgithub GitHub - mshige1979/sample_spring_rest02: rest apiの簡易テスト版 テストサンプル ItemControllerTest.java package com.example.controller; import stat…

doma2を使用したin句の条件設定

完全一致はあるけど 他の方法ってなかなか見つからないです IN句による条件指定 select * from keiyaku where name in ('tanaka', 'inoue') こんなやつ Dao KeiyakuDao.java package com.example.dao; import java.util.List; import org.seasar.doma.Dao; i…

doma2で部分一致検索を行う

Doma2で部分一致検索する際 %とかを任意で設定するのは止めたい 組み込み関数を使う 名前 関数名 例 前方一致 prefix where name like /* @prefix(name) */'smith' 後方一致 suffix where name like /* @suffix(name) */'smith' 前方後方一致 infix where na…

doma2で複数のテーブルを結合した結果を取得する

Javaのオブジェクト指向はなんか難しく感じる 永続化とかなんかもう少しわかりやすい表現ないかな… 複数のテーブルを連結したい 1つのテーブルの取得はできるけど複数テーブルの場合はどうするか確認 コレクト検索とかストリーム検索とかわからん DDL drop …

doma2で抽出件数を取得

マニュアルみたけど CollectとかStreamの使い方がよく分からない(´・ω・`) コード読んで理解しろってことかな… DDL drop table if exists item; create table if not exists item ( id bigint not null auto_increment, name varchar(255) not null, price …

Spring Bootで複数のフィルターを設定する

フィルタ内で全て1つでまとめるより 複数に分けたほうが管理し易いよね やること Filterをimplementsしたクラスを作成 @Componentsアノテーションは設定しない WebMvcConfigurerAdapterを継承したクラスで使用するフィルタを設定 フィルタ準備 Sample1Filte…

Spring Bootでフィルターを設定する

フィルタ 起動時、リクエスト、終了時などになんらかの処理を仕込みたい場合に設定する処理のこと HTTPリクエスト時などで特定のヘッダが存在しない場合は処理を実施しないなどに使用する感じ? 設定方法 Filterをimplemtsしたクラスを実装 @Componentsアノ…