ストレングスファインダーをやってみた

おばんです。

最近自分を見失いつつあるエンジニアおじさんの mp_hskです。

今日は自分を見つめなおすために、ちょっと前に流行ったストレングスファインダーをやってみたので、結果を垂れ流します。

 

ストレングスファインダーって?

まとめサイトをペタッと

https://xn--bckg8a9ab8bxc5fpjscf3i.com/

簡単に言うと自己分析の一種で、自分の才能(強味)を明らかにすることで社会生活に役立てましょうというもの。

下記の書籍購入すればテストコードがついているので受験可能。

https://books.rakuten.co.jp/rb/14755398/

書籍のコードだと上位5つの才能のみ開示されるが追加で50$くらい支払うとすべての結果がわかるので弱いところもわかる

結果

34の資質について4分類ごとに色分けしながら記載する。

分類の内容は下記のサイト様から引用

ストレングスファインダー34資質が4分類されるグループとは? | 自分コンパス

  • 資質の4分類

     

    • 実行力の資質…  物事を成し遂げる方法を知っている。思考よりも行動の優先順位が高い資質。
    • 影響力の資質…チームの考えを広く外部に知らしめようとする。周りの人を巻き込む資質。
    • 人間関係構築力の資質…強固な人間関係を構築する能力を持ち、単なる寄せ集めよりも大きな力を発揮するチームを作る。みんなと共に行う資質。
    • 戦略的思考力の資質…あらゆる可能性に目を向けさせる。情報を取り入れて分析し、適切な判断を下せるようにする。行動よりも思考の優先順位が高い資質。
    で自分の結果は。。。
  1. 親密性
  2. 分析思考
  3. 慎重さ
  4. 調和性
  5. 目標志向
  6. 学習欲
  7. 規律性
  8. 自我
  9. 回復志向
  10. 内省
  11. 活発性
  12. 自己確信
  13. 個別化
  14. 達成欲
  15. 信念
  16. 責任感
  17. 指令性
  18. アレンジ
  19. 原点思考
  20. 最上志向
  21. 公平性
  22. 戦略性
  23. 運命思考
  24. ポジティブ
  25. 成長促進
  26. コミュニケーション
  27. 着想
  28. 収集心
  29. 未来志向
  30. 競争性
  31. 包含
  32. 適応性
  33. 社交性
  34. 共感性

まず結果を自分なりに自己分析してみる

まず、ストレングスファインダーは上位5つが常に発揮できる強みらしくこちらは公式サイトでレポートをDLできる。

それを簡単に要約すると、

  • 親密性で、親しい間柄の人と深い関係を築くのが得意。またその相手へのアドバイスや教育を適切に行える
  • 分析思考で、原因・理由を論理立てて考えるのが得意
  • 慎重さで、感情を抑えながら常にリスクを察知して回避することが得意
  • 調和性で、意見の摩擦を極力避けながら最終的に地に足がついた結論に落とすことが得意
  • 目標志向で、目標達成に向けて物事を進める実行力がある

といった感じですね。会議で意見衝突がおおいので調和性が上位なのは以外でしたがよくよく考えると確かに常に落としどころを考えている気がします。

他はばっちり当てはまってる気がします。

また、6-10位は意識的に使える強味とのことらしくこれも結構あてはまってます

  • 学習欲で、学習して自己成長するのが大好き
  • 規律性で何でも秩序立てて説明できる
  • 自我により組織や世界に大きな影響を与えたいと思っている
  • 回復志向により問題解決へのモチベーションが高い
  • 内省によりじっくり考えることが得意

自分的にさっくりまとめると

課題解決によって認められることを目標に、小規模チームで着実に物事を実行するのが得意

 って感じでしょうか?

 

逆に低いところを見ると

  • 人と共感できない、空気が読めない
  • 社交性が低く人見知り
  • 適応性が低く、流れに身を任せることができない
  • 包含が低く、関係を築くときは結構慎重になる

自分的にさっくりまとめると

親密性が上位なので深い仲の人をすごく大事にする反面、新たな人付き合いがとても苦手で人脈を広げるのが難しい。あと空気が読めず意固地になりがち 

 って感じでしょうか?

あと、全体的な傾向として、実行力がやや上位、かつ内向的なものが上位という感じ。

このブログを見ている僕の知り合いの人は合ってるかどうかぜひ教えてくださいw

強味をベースに何かに生かせないか考えてみる

課題解決に対してかなり強そうな傾向が出たので、コンサルやSEは結構適職な気がする。あと、親密になれるなら目標を適切に管理できるのでコーチとかも向いてそう。

あと、通常の仕事シーンだと調和をとりつつ目標に迎えるので会議のファシリテータなんかが向いてるかもしれない(ただし空気が読めないのでこちらはあくまでも公式で合理的な意思決定の場としての会議。井戸端会議とか説教会議とかはたぶんだめ)

 

まとめ

とりあえず結果はなんとなく納得できるものだったので、これから書籍を読んで自分なりに生かせる方法を検討したいと思います。

興味がある方は、上位5位までなら書籍代2000円弱でできるのでぜひ試してみてください!それでは本日はお暇します。久々に長い記事を書いた。。。

AWS Solution days 2019 セキュリティ&コンプライアンスに行ってきた

こんにちは。

ブログがイベント参加記録になってしまっているmp_hskです。

今日は AWS Solution days 2019 というセッションに参加してきたのでそのレポートを雑にメモしておきます。

 

サイバーセキュリティ研究最前線 2019

 概要

NICT(国立研究開発法人 情報通信研究機構)による
1. ダークネット(国内未使用IP)観測システム NICTERの観測結果からみる最新のサイバー攻撃動向
2. 組織内セキュリティシステム NIRVANA の AWS上での導入紹介
3. WARP DRIVE プロジェクトの宣伝

 最新のサイバー攻撃動向

これまでは 2016年まではWEBサーバーへの攻撃が大半を占めていたが、昨今は IoT機器への攻撃が増えつつある。
IoT機器は Telnetのポートが明いていることが多く、アカウントもデフォルト設定のままのものが多いため。
今からできる対策としては

  • 怪しい動きをしたらとにかく再起動を行う(IoT機器用のマルウェアは揮発性のものが多いため)
  • ファームウェアを定期的に更新する。更新機能のないものは新しいものに買い替える
  • アカウントの設定をデフォルトから変える。
  • インターネットからのアクセスを禁止する。また、機器をGateway内のセグメントに配置する

2018年の大規模攻撃として特徴なのは 80/tcp 以外に 5555/tcpへの攻撃が多かったこと。
このポートは Androidエミュレータ Blue Stacks が自動で開けてしまうポートでその脆弱性がよく狙われた

これらの NICTER による最新動向、レポートは一般公開しているので興味のある方はこちらも参照のこと。
webでの最新情報 
2017年のレポート ※2018年は鋭意作成中

 NIRVANAAWS上での導入

NIRVANAはリアルタイムでインシデントを監視し、GUI操作でインシデント発生個所の隔離やファイアーウォールへのルール追加を行うことができるシステム。
AWS上では、 CloudWatch, WAF, Lambda 等を用いて構築ができ、すでに導入した実績がある

 WARP DRIVE プロジェクトの宣伝

エンドユーザーのブラウジングからサイバー攻撃同行を探るためのプロジェクト。
エンドユーザーの監視エージェントとして、攻殻機動隊のキャラクターをモチーフにしたエージェント「タチコマ」を配布している
興味がある人はぜひインストールしてプロジェクトに協力してほしい。
インストールはこちら

 米国政府および米国防衛関連のセキュリティ概要

 概要

米国政府のセキュリティ標準に関する紹介

 NIST と RMF

NISTは CSFコア(特定・防衛・検知・対応・復旧)という5つのコアプロセスと
成熟度、評価の仕組を併せ持ったセキュリティ標準のフレームワーク
このフレームワークはリスクベースアプローチで各プロセスを構成しており、そのリスク管理フレームワークをRMFと呼ぶ。
(RMFは6つのサイクルからなるPDCAの上位版みたいなもの)

米国政府で利用するクラウドサービスは必ず NIST に準拠したものでなければならず、
AWSはそれに準拠している(NIST RMFへの準拠認可を FedRAMPと呼ぶ)

 AWSの可用性

AWSはリージョンとアベイラビリティゾーンという構成で可用性を担保している。
下記のような構成が一般的。(DBの部分は Managed Database Serviceに置き換えても可)

Region      
  VPC    
    availability zone  
      Public Subnet
      Application Subnet
      Database Subnet

 AWS Security の方向性

 概要

AWSの今後のセキュリティ方向性について対談形式で議論

 キーワード

  • リアクティブからプロアクティブ
  • データと人間の分離
  • インシデントのレスポンスタイム短縮
    • 自動化によるレスポンスタイムの短縮
  • CI/CDパイプラインのセキュリティ
    • コードコントロールの部分と自動テストで品質を担保していく
  • Codable Infra & Application + Infra
  • マイクロサービス化
    • データと人間の分離とマイクロサービス化の組み合わせで、権限の強いスーパーユーザーを完全に排除

EC2の新しいアーキテクチャでは、マイクロサービス化をフル活用し、VMの CPU・リソース領域、ネットワーク領域、ストレージ領域などを担うマシンを別々にして構築することに成功し、セキュリティ的により大きな効果を上げている。

 AWS Security Hub を活用したCIS AWS Foundations ベンチマーク指標の評価

 概要

CIS AWS Foundations ベンチマークの概要説明とAWS Security Hub のさわりを紹介。

 CIS ベンチマーク

グローバルなセキュリティコミュニティであるNPO法人 CIS が出している指標。
3セクション、20項目の主要なコントロールからなり、準拠することで 約85%ものサイバー攻撃リスクを軽減することができる。

 CIS AWS Foundations

CISをベースにした、AWSアカウントのセキュリティ設定のベストプラクティス。
52のチェック項目からなり、各チェック項目のStep毎の実装ガイドラインなどのドキュメントも付与されている。
新しく発表したサービスである、AWS Security Hub では、利用しているアカウントがこのCIS AWS Foundationsに準拠しているかどうかを自動的にチェックし、警告を出してくれる機能がある。

 AWS Security Hub を活用したコンプライアンスの自動化の実装

 概要

主に AWS Security Hubの説明とデモ

 AWS Security Hub の機能

AWS Security Hubとは、セキュリティ情報を1か所に集約し、ダッシュボード形式で一元管理できるサービス。
一元化できる情報は下記の通り

  • CloudWatch、CloudTrail、GuardDuty などのAWS内のセキュリティサービスの情報
  • CIS AWS Foundationsの準拠状況
  • 様々なサードセキュリティベンダーの製品の情報
    • ファイアーウォールとかIPSとかのアラート情報など、その製品固有の管理画面から、AWS Security Hub の管理画面に集約できる
  • APIAWS Security Hubから情報を取得することも可能で、現在複数の言語で実装されている。
    • 情報収集結果から、Lambdaファンクションなどでの監視・復旧自動化につなげる

 AWS Control Tower を活用したランディングゾーンの構築

 概要

AWS Control Tower と landing Zone の概要説明

 Landing Zone

Landing Zone は昨今、1developer で複数のAWSアカウントを利用するニーズが増えてきたことに起因し、
統一的なセキュリティルールを適用したAWSマルチアカウント環境を作成するものである。
Landing Zoneでのルール設定を行うことで、複数のアカウントの共通のセキュリティルールを適用することができる。
また、Guard rail と呼ばれる、ルールにそぐわないデプロイメントをリジェクトする機能もある。

 AWS Control Tower

まだ発表のみでローンチしていないサービス。
Landing Zoneの作成のためのベストプラクティスを用意したり、Landing Zone、およびマルチアカウントを一元管理するサービス。

 

 

英語同時翻訳を聞いていたので解釈違いがあるかもしれない。。。。

発表資料は後日下記のサイトで公開されるらしいです。

aws.amazon.com

 

JSUG Spring Fest 2018に行ってきた

現職では雑用係が板についてきた mp_hskです。

さる 2018/10/31に日本Springユーザーグループ主催のSpirng Fest 2018に行ってきました。

このイベント、実は直前まで存在をしらなかったのですが、知り合いが登壇するとのことだったので急遽参加を決めました。結果的には良いセッションを聴講でき有意義な時間を過ごすことができました。

今日は参加したセッションの概要(+公開されているものはセッション資料)を紹介したいと思います。

 

これからSpringを使う開発者が知っておくべきこと

登壇者: 土岐 孝平さん

資料:

www.slideshare.net

内容は、Spring Bootの基本的なアノテーション、DIコンテナの解説が中心。

初心者向けに非常にわかりやすく解説されており、なんとなくSpringを使っている人にはぜひ見てもらいたい内容でした。

それにしても、むかしはProxyを挟むためにBeanはかならずInterfaceとimplに分けなきゃいけなかったのに、最近は便利になったなぁと感じます。

 

Tymeleaf さいしょの一歩

登壇者:伊賀 敏樹さん

資料:

www.slideshare.net

僕の前職の知人で、Javaの本書いてたりためになる技術ブログ書いてたり、実業務で構文解析ツール自作したりするすごいおじちゃんですw

内容的には、Spring Webが推奨してるのHTMLテンプレートエンジンである Thymeleaf の入門です。

ThymeleafはJSPやらJSFやらからいいところをできるだけスマートに持ってきた感じですごいいいエンジンなのですが、何分公式ページが縦に長すぎて心が折れるのでさわりだけでも解説があるとすごく触れやすくなります。

フロントのギークなエンジニアはもうSPAとかVue.jsとかに行ってる感じですが、まだまだ既存のVBとかの業務システムをJava/Webに移行する案件とかは多いはずなので、そういうのに参画されている方は是非一回読んでみて、Thymeleafを使ってほしいですね。それにしても、Spring Initializer 便利だな。

Spring BootでつくるRESTfull Web Service

登壇者:大野 渉さん

資料:

www.slideshare.net

内容はRESTfullの基本的な概念と、Spring MVCのRestControllerの解説が中心でした。

現職でもいまのWebサイト機能をWeb API化しようという動きがあるので、RESTfullの基本を再復習できたのは非常に良かったです。

SpringのRestControllerはすごい直感的で使いやすいので、現職のAPI化でも使いたいのですが、Javaのアップデートスケジュールが厳しいので悩みどころですね。

やはり Kottlinなのか。。。

こちらの解説も非常に初心者向けでわかりやすいので興味がある方は是非スライド参照してみてくださいね。

 

 

今回は上記3つのセッション参加で力尽きたので途中下車しましたが、たまにはこういうイベントに参加するのもいいもんですね。

最近技術から大分離れてマネジメント寄りになっているので、たまには技術にも触れてエンジニア魂を活性化していきたいと思います(小並)

初めてのオンライン英会話

最近独り身でもいいかと思い始めた mp_hsk です。

今日初めてオンライン英会話なるものを体験したので、

惨敗の記録感想とかを書いてみたいと思います。

自分の英語レベル

TOEIC 400くらい。

英語圏の国には旅行すら行ったことないレベル。

(ただ、一応外資系企業に入って1年弱になるので、USからのメールをGoogle先生の助けなしでもニュアンス理解したり、軽い返事を書くくらいの読み書きはできる)

やってみたサービス

スキマトーク

100%ネイティブ講師によるオンライン英会話「スキマトーク」

どちらかというと中級者向けのオンライン英会話で、教材もビジネス英会話が多い。

(なんでこれを選んだかというと、会社がお金を補助してくれるからですw)

やってみたこと

レッスンは skype通信で 1回25分。

フリートークか、教材に従ったロールプレイか、時事問題のディスカッション見たいなのが選べるが、初心者なのでロールプレイを選択。

ドキドキしながら待ってると、skypeから軽快に「Hello!!!」の挨拶が。

そこから完全英語だけのレッスンが始まる!

感想

スキマトークはネイティブの講師のみ在籍で日本語は通じませんので、

「あー」「うー」みたいな感じで開始時は固まってしまいましたorz,

でもそれで、「あっ、察し」となったらしく、

簡単な質問(住所とか、職業とか、休日なにしてたの)とかをゆっくり、繰り返し聞いてくれ、単語レベルでもなんとか返事するとすごいオーバーリアクションでほめてくれましたので、この辺モチベーションを維持させるのは講師の方も気を使っているのかな?と感じました。

また、全体的にかなりゆっくり、かつ単語間の発音を意識的に区切って会話してくれたので思ったより内容が聞き取れたのは良かったです。(英語圏の人は単語間の発音をつなげることが多く、それが日本人に一番聞き取りづらい)

25分英語しゃべりっぱなしになるのは正直つらいけど、まぁ何とかできそうな感じ+語彙を増やしてレッスン重ねれば多少はできるようになるかな?的な手ごたえを感じました。

今後

とりあえず会社の選んでくれたコースだと週3レッスンくらい受けれる感じなので、

スキマトークと瞬間英作文の併用でしばらく英語も頑張ってみようかと思います。

 

ITストラテジストSalesforceの資格もとらなきゃ、、、

HerokuでOSS Webサービスを作ってみる

mp_hskです。

超久しぶりのブログ記事です。

今日は2/21に社内LTで発表した内容を抜粋して紹介します。

お題

Heroku Platformを使って OSSのいろんな

Webサービスを構築してみます。簡単な構築手順などを紹介します。

Word Press

システムの概要

世界的に有名なコンテンツ管理システム(CMS) ブログ形式のコンテンツを管理するのに適しており、様々なカスタマイズもできます。

WordPress Codex 日本語版

エンジン: PHP

DB: MySQL

構築手順

約15分で可能。

 

  1. Heroku管理コンソールでアプリを作成
  2. アプリにMySQL ( 今回は JawsDB MySQL ) のAdd-onをProvisioning
  3. https://wordpress.org/ からWord PressのZIPをダウンロードし解凍する
  4. 解凍したファイルのwp-config.phpにDB情報を記載 (Add-onの管理画面で確認可能)
  5. 解凍したファイルを全て、Heroku Git に pushする
  6. Heroku 管理コンソールからアプリのTop URLをクリックする(とWordPressのインストール画面が起動できる)
  7. 完了!

Red Mine

概要

OSSのチケットトラッキングシステム。

標準的なチケットトラッキングwikiの他、SVNやGItと連動したりプラグインを足して機能追加など色々できる。

Redmine.JP — Redmine日本語情報サイト

エンジン: Ruby

DB: PostgreSQL ( Railsが対応してるDBならなんでもOK)

構築手順

約60分で可能。

  1. Heroku管理コンソールでアプリを作成
  2. アプリに Heroku PostgresのAdd-onをProvisioning
  3. Heroku環境変数RAILS_ENV = production を設定
  4. Githubから Redmineソースをクローン https://github.com/redmine/redmine.git
  5. ローカルで設定変更(次ページで解説)
  6. 設定変更結果を Herokuにpush
  7. heroku run rake db:migrate RAILS_ENV=production でテーブルを作成
  8. heroku run rake redmine:load_default_data RAILS_ENV=production で初期データをロード(途中言語聞かれるのでja を選択)
  9. 完了!

 

 ローカルでの設定

 

ローカルの細々とした設定

  1. CloneしたGitリポジトリは開発中のものなので、安定版のブランチにチェックアウトしておく
  2. .gitignoreから下記を削除する/config/configuration.yml
    /config/email.yml
    /config/initializers/session_store.rb
    /config/initializers/secret_token.rb
    /public/plugin_assets
    /Gemfile.lock
    /Gemfile.local
  3. config/database.yml を Add-onの環境情報を見て設定
  4. ローカルで bundle install を実行する
  5. ローカルで bundle exec rake generate_secret_token を実行する
  6. 切り替えた安定版のブランチ名を master に変更する

Knowledge

システム概要

OSSのナレッジ管理システム。

Wikiのような形で手軽にナレッジベースを共有できる。UIもモダンな感じで使いやすい。

information-knowledge.support-project.org

エンジン: Java

DB: PostgreSQL

構築手順

約10分で可能。

 

  1. https://github.com/support-project/knowledge にアクセスして Deploy To Heroku ボタンをクリック
  2. アプリ名、アプリオーナー、リージョンを設定してDeploy Appをクリック
  3. 完了!

Reichat

システム概要

OSSのお絵かきチャット。

ペンタブも対応でお絵かきチャットができる。ログイン機能がないのとフリーハンドなので作図には向かない。完全にお遊び用だけど、社内コミュニケーションとかで使えるかも。

www.moongift.jp

エンジン: Node JS

DB: なし

構築手順

約10分で可能。

 

  1. https://github.com/kanreisa/reichat にアクセスして Deploy To Heroku ボタンをクリック
  2. アプリ名、アプリオーナー、リージョンを設定してDeploy Appをクリック
  3. 完了!

最後に

作った後、OSSの構築にHerokuの相性はいいとか、これからこういうの組み合わせで売っていくのがいいんじゃないか、的な締めをしました。が、このブログではこういう知識を垂れ流すためにやっているので、興味がある方は無料アカウントで是非試してみてください。上の構築手順は(クレカの登録が必要ですが)全部Herokuの無料アカウントの範囲で可能です。

 

 

外資系Sierに転職して3か月経った感想

こんばんは。mp_hskです。

今日は与太話として転職して3か月経った感想を書いてみました。

イケてるポイント

個人的にイケてると思っているポイントを書いてみます。

  1. お給料が高い! やっぱり外資はこれですね。有名外資の20台で1千万プレイヤー、ほどではないにしても自分の年齢考えたらもらえてる方だと思います。(今後上がるかわからないけど)
  2. 自由を愛する文化! これは外資というより会社の特徴だけど、基本クラウド前提のビジネスを展開しているのでインターネットがあればどこでも仕事ができる。だから成果さえ出してれば作業場所や時間についてあまりうるさくない、個人が最もパフォーマンスを発揮できるやり方を追求していい、というルールになっている。このルールは効率厨の自分にとっては非常にありがたいルールだと思っています。
  3. オフィスに行くメリットを用意している! 具体的にはお菓子と軽食とドリンクフリーな点。会社に行けばこの辺無料で使えるし、ほかにも色々備品があってなんだかんだ仕事がはかどるので、仕事場所を規制されなくても自発的に自然にオフィスに行くようになる、という点が素晴らしいと思った。
  4. 風通しがいい! 今会社規模が小さいからもあるけど、社長が普通に近くにいて挨拶やら雑談やらできる環境だし、1on1も定期的に設けてくれてるので意見が言いやすい。もちろん全部自分の意見通るわけではないけど、否定ではなくディスカッションでよりアイディアをよくする文化なので意見するのを徒労に感じない点も〇
  5. 楽しいを大事にしてる! 会社の文化として Fan を大事にするカルチャーがグローバルの本社にも日本法人にも根付いているので、会議中に気さくなオッさん(CEO)がジョーク飛ばしたり、マーケティングの偉いオバチャンが高笑いしてるのに周りから総ツッコミ入ったり、わりとラフでフリーダムな雰囲気の中で仕事できます。こういうのが好きなひとには自分もそうですが居心地いいです。

イマイチなポイント

イケてるポイントだけでなくイマイチな点も書いてみる。

  1. リソースが足りない! 営業力はあるので仕事は多いが人の数が足りてないのは会社としても大きな課題としてとらえているし、実務でも感じることが多い。ただ一人にオーバーワークかからないように配慮してくれてるので毎日終電、とかは今のところない。
  2. 若い会社のわりに年齢層が高い! これはリクルート外資系エージェントとかLinkedinとかリファレンスに頼ってるので仕方ない部分があるけど、もう少し平均年齢下がった方が社内が元気になっていいと思う。
  3. 教育などがしっかりできてない! これも小さい会社にはありがちだけど、基本的に若い人をじっくり教育しようってのは難しい状態で、この状態はしばらく続きそう。まぁ技術スキルは自分でキャッチアップすればいいにしても社内制度とか、社内システムの使い方とかはもう少し充実させてほしいかな。
  4. オフィスが手狭で頻繁に座席移動がある! このポイントに関しては人が増えてきたら早めに対応してほしい。ほぼ月1のペースで座席の移動があるのは結構しんどい。

英語について

外資で気になるのは英語のことだと思いますので言及しておきますと

まず、自分はTOEIC 400切るくらいの英語クソザコナメクジです。

が、会社ではとりあえず仕事はできています。

会社のスタンスも、「英語はできることに越したことはないが必須とはしていない」なので今英語ができなくても大丈夫です。

ただ、やっぱり本社の役員メッセージや、一般社員のアイディア投稿などは英語でバンバンメールが来たりするので、できた方が幸せだとは思います。

メールできたり身近にしゃべれる人いたり、英会話補助があったり、何より遠く海外にいる面白いやつらとコミニケーションとりたい!というモチベーションが発生するので、英語勉強する環境としてはいいんじゃないかと思います。

自分も学生時代は大嫌いな教科でしたが、年末に力試しTOEICを受けてスコア上げるために頑張るかー、ぐらいにはモチベーション保って勉強つづけられています。(身になってるかはわからないけど、インド人の同僚との会話が、単語オンリーから少し文章になってきたりすると結構うれしかったりしましたね。)

最後に宣伝

このブログはおそらく見てる大半の人が知り合いだと思うけど、もし僕の知り合いでない人で、うちの会社に興味を持った人がいらっしゃたらとしたら

弊社は絶賛仲間を募集中なのでコメントでお知らせいただければもう少し詳しい話ができるかと思います。興味のある方はぜひよろしくお願いします。

ひさびさにSpringを触ってドツボにはまったできごと

こんにちは。1か月に一つはブログを書きたいmp_hskです。

今日は、仕事で久しぶりに触ったSpring Freamworkではまったポイントをメモ。

JDBCTemplatがAutowiredできない!

今回は古臭い感じでSQLを書かなきゃならない要件があったので、JdbcTemplateを使ってDAOを実装しようといたが、アプリの起動で注入に失敗しまくった。

Profileをデバッグモードにしてログを見てみると、どうもJdbcTemplate内でつかってる DataSourceのBeanがみつからないらしい。

なんでや?application.ymlにはちゃんと設定しとるやろ!

spring:

  datasource:

    url: jdbcurl

    username: user

    password: pass

色々試してみたけど自分の環境ではdatasourceのオートコンフィグレーションが働いていなかったっぽい。

なんでコンフィグレーションクラスを作ったらうまくいった。

(HikariCPを使って実装)

@Configuration

public DataBaseConfig{

  @Bean

   public DataSource dataSource{

        HikariConfig config = new HikariConfig();

        config.setJdbcUrl(url);

        config.setUserName(user);

        config.setPassWord(password);

         return new HikariDataSource(config);

   }

}

 Hikari CPについては以下の記事がわかりやすい。

[Java]HikariCPでMySQL/SQLiteに接続してみる | 純規の暇人趣味ブログ

 

トランザクションロールバックされない

Serviceクラスに@Transactinalを付けトランザクション制御しようとしたが

Exceptionを発生させてもロールバックされない。

これは調べてみたら単純で、今の仕様だと@Transactinalではデフォルトでは非検査例外(RuntimeExceptionのサブクラス)しかロールバックされないらしい。

普通のExceptionでもロールバックする場合は以下のようにすればいい。

@Transactinal(rollbackFor=Exception.class)

LIKE検索のワイルドカード指定法

LIKEのワイルドカードを指定しつつ、入力パラメータはバインド変数でサニタイズするって部分で無駄に悩んだ。

これは強引に、ワイルドカード文字列とバインド変数を文字列結合することで解決。

String sql = "SELECT * FROM TABLE WHERE AAA LIKE " 

                + "'%' || ? || '%''";

// PostgreSQLを使ってるので'%'とバインド変数を || で連結 

こんな感じでうまくいった。

 

まぁこんかなんじでちょこちょこはまったけど、昔に比べるとずいぶん設定ファイルが減って楽になった印象を受けた。みんな少しずつ進化しているなぁ。