Tagbangers Blog

Java

Javaでlsコマンドを作る

こんにちは、藤岡です。 今週も、先週に引き続き「ターミナルのlsコマンドをJavaで作る」ということをやりました。 ようやく完成に近づいたので、それを共有したいと思います。試作品はこちらです。 このプログラムを作るに当たって、ポイントとなったのは オプションが指定された時にそれをどう受け取るのかということ オプションが指定された時にそれぞれどう場合分けして処理させればいいのかということ ということです。 それぞれどう対処したのかを解説します。 1. オプションをどう受け取るか これが最初の難関でしたが、Character型の配列に指定されたものを追加していくという方法で解決しました。 具体的に...

ターミナルのコマンドをJavaで作る

こんにちは、藤岡です。 今週も学んだことを共有していきたいと思います。 今週はパソコンの受け継ぎを行ったので、MBAからMBPにグレードアップしました。 いつの年のものかは知りませんが、明らかにPCの解像度が綺麗になっていたので、時代の進歩を感じました。 また、キーボードもApple純正の「Magic Keyboard」になり、ディスプレイも2画面から3画面となったことで、作業がかなり快適になりました。 自分にはもったいない環境だとは思いますが、是非とも活用していきたいです。 さて、今週は主にJavaについて学んだのですが、以下の2つの課題を出していただきました。 javaでcatコマンドを作...

JS、Javaでサンプルプログラムを作ってみる

こんにちは、藤岡です。 今週も、先週に引き続きJavaとJavaScriptの勉強を進めました。 今週の課題として出していただいたのは、以下の3つです。 JSで四則演算を行うプログラムを作る JSで電卓を作る Javaで誕生日を入力し、年齢を算出させるプログラムを作る それぞれ、説明していきます。 四則演算プログラム(JS) このプログラムは、単純に「掛け算」、「足し算」、「引き算」、「割り算」を計算させるものです。 注意しなければならないのは、足し算を行う時です。というのも「+」を用いて計算させているため、数値が文字列として扱われてしまう危険性があるということです。そのため、「parseIn...

Hibernate Search + Elasticsearch を試してみる (Docker 版)

Hibernate Search 5.6 から Elasticsearch がサポートされました。 Hibernate Search は全文検索用のインデックスを Hibernate のエンティティのライフサイクルにあわせてリアルタイムに自動生成してくれます。 前回の記事では Elasticsearch の Docker イメージを使って簡単に動作を確認してみましたが、今回はさらに Maven のライフサイクルあわせて Docker の起動停止を行ってみます。 docker-maven-plugin を使うと、Maven の integration-test 実行時に Docker コンテナの...

Thymeleafでpomのversionを利用する

お久しぶりです。奥村です。 GWを明日に控えたこのタイミングで連休ボケする前に小ネタを1つ投稿しておきます。 pomのversion値を利用して、各バージョンごとでcssファイルなどのキャッシュをリセットさせたい!っといった要望があった際に利用する小ネタです。 pom.xml     4.0.0     com.example     sample     1.0.0.RELEASE application.properties pom.version=@project.version@ index.html 1.0.0.RELEASE -1138007634 ...

Elastic Beanstalk で catalina.out を CloudWatch Logs に出力する

Elastic Beanstalk は2016年12月にアップデートされたプラットフォームから、CloudWatch Logs との連携が強化され、コンソールからオプションを有効にするだけで、簡単にログが Stream に出力できるようになりました。 ただ、例えば Tomcat 環境であれば現時点では以下のログが対象になり、catalina.out が含まれません。 /var/log/eb-activity.log /var/log/httpd/error_log /var/log/httpd/access_log /var/log/nginx/error_log /var/log/n...

AWS SDK for Java 1.11.84 から Client Constructors が Deprecated になっていた

はじめに こんにちは、荻野です。 AWS Developer Blogを見ていてへぇ〜っとなったネタがありましたのでご紹介します。 AWS SDK for JavaでConstructorがDeprecatedになっていた 申し訳ないですが、タイトルのままですw 1.11.84 versionからの変更のようで、今後はbuilderを使うことが推奨されています。以下はAWS Developer Blogでも紹介されていたサンプルです。 こちらがConstructorパターンです。 AmazonSNS sns = new AmazonSNSClient(); そしてこちらはbuilderパターン...

JMockitを使ってprivateメソッドをモックにしてみた話

JMockitは、ユニットテストで使用するいろいろなことができるライブラリです。 今日はその中からprivateメソッドのモックの仕方について紹介します。 ユニットテストを書いていて、privateメソッド関係ないから無視したいな〜という時に使えます。 まず、MVN REPOSITORYからお好きなバージョンを選択し、pom.xmlに追記します。     org.jmockit     jmockit     1.30 次にテスト対象クラス。JmockitSample.java package com.example; public class JmockitSample {...

Rest API を作っていて LazyInitializationException が出た時の話

最近、SPAの開発がありました。 サーバサイドは当社のスタンダード、Spring + Hibernate で開発しているのですが、題名の通り LazyInitializationException にぶち当たりまして、その対応をした時の話です。 Rest API になるので、例えばコントローラはこんな感じです。 レスポンスは jackson-databind で jsonシリアライズされるようにしています。 @RestController @RequestMapping("/companies") public class CompanyController {     @Injec...

Spring Boot CLI をインストールする (Homebrew)

Spring Boot CLI をインストールする。 $ brew tap pivotal/tap $ brew install springboot これだけ。Homebrew を使うとほんと簡単でいいですね。 あとはサブコマンドのタブ補完がつかえるように bash-completion をインストールしておく。 $ brew install bash-completion インストール後、~/.bash_profile に以下を追記する。 if [ -f $(brew --prefix)/etc/bash_completion ]; then     . $(brew --prefix...