読者です 読者をやめる 読者になる 読者になる

m_shige1979のささやかな抵抗と欲望の日々

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

なんとなく作ったサイト

http://www.it-check-matome.info/


Github(注意すること)

https://github.com/mshige1979

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 …

Spring Bootでメールを送信する

Spring Bootでメールを送信する 今回の送信は簡単な平分を送信するだけ メールサーバ Gmailをリレーする 設定 application.properties # port server.port=7777 # mail spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=Gmailの…

MacよりGmailへメールを送信

備忘録 メッセージのソースだけだとあまりわからないので… Postfix設定 設定ファイルバックアップ sudo cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org /etc/postfix/main.cf # リレーホストを追加 relayhost = [smtp.gmail.com]:587 #sasl setting s…

macのpostfixでローカルメールを扱う

eclipseなどで開発する場合は メールサーバの有無で開発環境に問題が発生しやすい WindowsやMacなどでもメールサーバは未実装の環境が多いので外部にはメールを送信したくないことある 基本的には m-shige1979.hatenablog.com これです postfix 存在チェック…

Windows10で開発用のSMTPサーバを使いたい

smtp4dev http://smtp4dev.codeplex.com/releases/view/71614 環境 Windows10(VM) 設定 smtp4dev 2.0.9 standaloneをダウンロード ダウンロードしたファイルを解凍して起動する Windowsの機能が足りない場合は追加する ファイアウォールを解除する 起動を…

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 …

MySQLのDATETIMEやTIMESTAMPでミリ秒などを設定したい

環境 MySQL5.7での確認 こんな感じの定義の場合 drop table if exists sample1; create table if not exists sample1( id bigint not null auto_increment, date1 datetime not null, date2 timestame not null, primary key(id) ); ↓ insert into sample1(d…

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

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

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

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

Spring Bootで独自の認証を組み込む

認証を独自に実装したい DBの認証やアルゴリズムがちょっと特殊な場合など 今回やったこと ・AuthenticationProviderを実装したAuthenticationProviderImplクラスを作成してここで認証を実施 ・WebSecurityConfigurerAdapterにAuthenticationProviderImplを…

Spring Bootで独自のエラー画面を表示したい

エラー画面がほしい システムの画面はちょっと困る やること ・EmbeddedServletContainerCustomizerを実装する ・ErrorControllerクラスを作成する ・Viewを作成する EmbeddedServletContainerCustomizer実装 Customizer.java package com.example.error; im…

Spring Bootでセキュリティに権限を設定する

認可 ユーザーに特定の条件を付与してアクセス権限みたいなものを設定する 今回は1つの権限で1つのURLへのアクセスを制御する。 実際はロールとかいうもので1ユーザーが複数持てるように管理すべきだが面倒なんで… やること ユーザーテーブルに権限のエリ…

Spring Bootで認証を試す

なんか結構難しいけど いろいろな記事見ててモヤモヤしてて他の事が手につかなくなったのでちょっとだけ試す。 認証機能 ログインやログアウトを行う機能 実装サンプル GitHub - mshige1979/sample_spring_secutiry01: spring bootの認証の簡易版 参考 Sprin…

doma2のsql文調査

SQL文の複合条件とか気になるので調べる SELECT、INSERT、UPDATEらへんの挙動 SELECT 基本的にはSQLを作らなければならない 基本形 @Select List<Item> findAll();※@Selectアノテーションを付けたものが対象となります。↓対応するSQL select /*%expand*/* from ite</item>…

doma2によるデータの抽出を試す

この前は自動生成しかしていないので 自動生成なしで準備して見る 環境 Mac eclipse ライブラリ doma2 mysql 準備 Javaプロジェクトを準備し、ライブラリを設定しておく プロジェクトのプロパティより注釈処理を有効にしておく ファクトリーパスにdoma2のjar…

Doma2のgenで自動生成を行う

Doma2 ORマッパーらしい SQLファイルとか書いてなんかできるらしいよ 今回やること Doma2でDBを参照していい感じのエンティティとかを作成できるらしいので準備して見る。 環境 eclipse mysql ライブラリ doma2 doma2-gen freemarker mysl 設定 プロジェクト…

JavaからDLLを呼び出してみる3

タイトルあんまり名前が繋がってない まあ、意味は伝わるはず やりたいこと C++で作成したクラスをJavaで呼び出したい でもできない(やりかたがわからない)ので関数でラップして使用する。 C++のクラス用DLLを作成 MathFuncsDll.h // MathFuncsDll.h #ifde…

Windowsで作成したDLLをJavaで動かす2

関数を1つしか定義していなかったので 複数定義した場合のパターンをやってみる SampleDll.cpp // SampleDll.cpp : DLL アプリケーション用にエクスポートされる関数を定義します。 // #include "stdafx.h" #include "stdio.h" int GetHello(int data) { pr…

Spring Bootでアップロードファイルを受け取る

FormとかBeanとかいうクラスを使用することで受け取ることが可能になりました。 ファイルってどうするのかな? MultipartFileとかいうクラス があれば受け取れます(^^) フォーム系 SendDataForm.java package com.example.form; import java.io.Serializable…

Spring Bootでjson文字列を受信してクラスに割り当てる

BeanとかFormとか呼ばれているもので画面とかの項目が設定されるやつ 前の時代などではパラメータを指定して取り込んでいたけどjsonで送った場合なども対応したクラスに割り当てたい場合等に対応 json形式で送った際きちんとクラスに設定されるか検証する や…

Spring BootでXMLやJSONを返す

忙しいです… (´・ω・`) Spring BootでRest APIを作成する場合には ・コントローラー用のクラスに"@RestController"アノテーションを付ける ・クラスを任意で用意して返却することで基本、json形式で返却できる ・XMLを返したい場合は返却用のクラスに"@XmlRo…

Windowsで作成したDLLをJavaより呼び出して使用する

C言語で作成すると 超速いというのは知っていますが、そもそも他の言語で作成できるのかな? と思ったので簡単なプログラムを作成して試してみる。 環境 Windows64系のVC++でDLLを作成し、それをeclipseで実行する。 DLL作成 プロジェクトの作成でC++のWin32…

JavaでクラスをシリアライズしてDBへ保存

まあ、なんかの役に立つかもしれない クラスをデータ化して保存する 環境 MySQL Java8 テーブル定義 mysql> create table obj_data( -> id integer not null auto_increment, -> data blob, -> create_at datetime, -> update_at datetime, -> primary key(i…

JavaからMySQLに接続

スケジュールって基本できる時間で組むべきで 理想で組むべきじゃないと思う 残業した時点で既に破綻していることになっているから… MySQLで接続 ・Java 1.8 ・MySQL MySQL用のJarを取得する https://dev.mysql.com/downloads/connector/j/へアクセス ※Oracl…

BlumixのCFアプリのJavaサーブレットでLINE APIのボットサンプルを作成

Javaはクラスを基準に制御する のでjson変換するのはjacksonを使用してみた。 LINE API メッセージを送受信できるAPI 大抵のことはPHPでやっていたけどJavaでやっておく・署名 ・json解析 ・LINE送信 Jasksonを使うと簡単に解析できる クラスやクラス内のネ…

Macにtomcatをインストール

外部に配置したいんだけどね… eclipseとかで開発する場合はないと動かない見ないだし(´・ω・`) 環境 mac Java 1.8系 Tomcatインストール http://tomcat.apache.org/よりダウンロード ↓ 解凍、移動 tar zxf apache-tomcat-8.5.8.tar.gz sudo mv apache-tomcat…

Javaによるnio2での簡単なファイル読み書き

NIO2? JavaのSE7から出てきたファイル制御が少し簡単になるライブラリです。 ファイルを閉じるときに意味不明なtry-catch文の対応と一緒に組み込まれたのかな? 昔のやつ Sample02.java package sample02; import java.io.BufferedReader; import java.io.Bu…

Spring Bootでデータベースに接続

そろそろDB Javaって他の言語より導入が面倒な部分が感じられるのでなかなか進まない 環境 Spring Boot 1.4 MySQL 5.x ※MySQLはvagrantに配置して接続してみる DB設定 DDL作成 create table if not exists memo ( id int not null auto_increment, name varc…

vagrant上に Redisをインストールする

Redis キーバリュー型のNoSQLデータベースらしいMongoDBとかちょっと違う感じのやつ 環境 vagrant上のCentOS7 インストール epelインストール sudo yum -y install epel-release redisインストール sudo yum -y install redis バージョン確認 $ redis-cli -v…

MySQL5.7をvagrant上のCentOS7へインストール

Mac上にはDBなどはインストールしたくない perlとかの言語系はともかく、DBはクライアントだけならいけど本体はいらん インストールするもの MySQL5.7.x インストールする場所 mac上のvagrantのCentOS7.x インストール sudo yum -y localinstall http://dev.…

Spring bootでHttpSessionを使用する

セッションを使用する データが複数画面に跨ったり一定期間データを保持する必要があるデータの管理をすることがあるので… イメージ うん、適当だねw やること コントローラーでセッションを使用する データを渡すフォーム系のクラスをシリアライズ化する …

Spring Bootでリクエスト時の受け取るパラメータをクラスにする

リクエストパラメータを1つずつ書くのはちょっと手間がかかる もう少し楽したい(^^) こんな感じのクラスを用意 TestForm.java package com.example.beans; public class TestForm { private String name; private String age; public String getName() { re…

Spring Bootで画面へ設定した入力を他の画面へ渡す

一般的画面遷移 入力→確認 入力画面を設定して、確認画面で内容を表示する 画面構成 /の場合のページ <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Spring Sample Demo</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <h1>Spring Sample</h1> <div> Spring Sample Test </div> <p>Now </p></body></html>

JavaのSpring bootでthymeleafを使用する

直接HTMLを記載するわけにはいかない いろいろなフレームワークではテンプレートを使用する 環境 Mac mini Spring Boot 1.4.x Java 8 Maven設定 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin…</artifactid></dependency></dependencies>

macにcompassを入れる

新しく購入 mac miniをお試し中 なんか起動がすでにおかしいけどw rubyのツールのやつ cssを階層でかけてメンテし易いやつです。 環境が変わった アップデート sudo gem update --system conpassインストール sudo gem install -n /usr/local/bin compassこ…

Spring BootでHello Worldを行う

Javaのフレームワーク WebだけじゃなさそうだけどJava系のフレームワークで役に立つかもしれないのでちょっとずつ調べる 環境 Mac Java 1.8 手順 Webサイトで開発環境のSTSをダウンロード https://spring.io/tools/sts/all ※400MBくらいあった 起動 「Spring…

AWS SESでメールを受信してS3へ保管

独自ドメインを使えば受信できるらしい やってみる 独自ドメイン mshige1979aws.xyz AWS SESリージョン オレゴン Route53設定 Route53を起動 Hosted zonesを選択 ドメインを選択 Create Record Setを選択 MXレコードを設定 SES設定 SESを起動 Domainsを選択 …

AWSのSESの制限を解除してみる

解除してみた まだ、まともに使っていないけど… 手順 送信制限の解除申請 設定 依頼中 完了 これでおわりらしい 時間は? 1日くらい? 時差の問題とかありそうなのでよくわかりませんけど… 参考 Amazon SESによるメール送信環境の構築と実践 | Developers.I…

AWSのSESでメールを送信する

AWS SES メールを送信するサービス。 なんかやれば受診もできるらしい 最初は制限がある サンドボックスバージョンらしいので 外部へのメール送信など遅れるメール数とかいろいろ制限があるらしい 今回やること メールアドレスを登録して登録したメールアド…

AWSのS3のサイトを独自ドメインで見えるようにする

最近、AWSを使用しているので料金がちょっと気になる 以前、やったときは3万くらいかかって泣いたことがあるので気をつけないと… 独自ドメインは お名前.comで作成した → s3dev.mshige1979aws.xyz S3でバケットを作成 S3を開く バケットの作成 バケット名は…

AWS CLIでS3を制御

AWSでs3を使用 静的なファイルサーバと考える 料金は比較的に安い 一時的に実験 作成〜削除までやってみる コマンド確認 $ aws s3 hoge usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help aws: err</subcommand></command></command></subcommand></subcommand></command>…

AWS CLIインストールと初期設定

AWS アマゾンウェブサービスのクラウドのシステムでお金がかかります(´・ω・`) Webコンソール以外で使いたい 全ての作業をWeb上でやらないといけない場合もありますがCLIできた方がいろいろ便利な場合もあるので調べてみる 登録後にやるべきこと AWSアカウ…