Tagbangers Blog

Java

Spring の小粋なクラス Part1 - AbstractPersistable

今回の小粋なクラスは、 org.springframework.data.jpa.domain.AbstractPersistable (spring-data-jpa-1.9.2.RELEASE) JPA を使う時に Entity の親クラスとしてとりあえず継承しておくといい。 AbstractPersistable は JPA における主キーをあらわすメソッドと、主キーベースの #equals(Object) と #hashCode() メソッドが提供される。 下記のリファレンスにもあるとおり、Hibernate ではオブジェクトの等価性を使って同一のデータベースのレコードかどうかを判断す...

JJUG CCC 2015 Fallに行って、スレッドダンプについて考えてみた

先日、JJUG CCC 2015 FallというJavaのイベントに行ってきました。 いくつかセッションに参加しましたが、山本裕介さんのセッション「苦手克服!例外スタックトレースから読み解くバグ」について自分なりに調べてみました。 このセッションは、例外とは何か?エラーとは何か?から入って、スタックトレースの読み方まで話されていて経験の浅い私でもかなり入りやすかったです。 ■エラーとは? ざっくり言うと不具合です。エラーには大きく分けて3種類あります。 エラーの種類、説明、気づく方法。 1. 文法エラー(syntax error) →文法間違っているよ!(例:閉じ括弧「}」がない、セミコロン忘...

Reactiveってなんですか?

みなさんReactiveですか? 私はReactiveだったり、Reactiveじゃなかったりします。 心に余裕があるときはReactiveですし、思考が停止しているときはもちろんReactiveじゃ無いです。 ・・・。 Reactiveってなんですか? Reactiveとは反応的なという意味です。 さて、今回知りたいのは Reactive Programing = 「反応的プログラミング」? Reactive Streams = 「反応的ストリーム」? Reactive Manifesto = 「反応的宣言」? いつものことですが、日本語にしても全く意味がわかりません。 いろいろと調べてみま...

Introducing RxJava into a Spring Boot REST API - SpringOne 2GX '15

SpringOne 2GX 2015 のセッション紹介。 今回は、「Introducing RxJava into a Spring Boot REST API」 こちらがスライド。 実際のセッションではデモコードを交えて説明していた。以下がそのソースコード。 https://github.com/simonbasle/practicalRx なぜ? 「ブロッキングは悪だ」 「Reactive で、並列可能で、組みやすく、読みやすい、非同期コードが必要だ」 どうやって? Java には2つの方法があるがどちらも欠点がある Callback を用いたやり方 → ネストが深くなって Callbac...

[Android] TimePickerで現在時刻を取得する

TimePickerで現在時刻を取得しようとしたら少しはまったので。 TimePickerとはこれです。 現在時刻の取得にTimePickerクラスのgetCurrentHour()、getCurrentMinute()を使おうと思ったら、、、非推奨。 調べてみたら、SDK23からgetHour()、getMinute()を推奨とのこと。 hour = timePicker.getHour(); minute = timePicker.getMinute(); 素直に使ってみたら、アプリが落ちる。ログ見るとSDKのバージョンが合ってないよと怒られた。 また調べてみたら、SDKのバージョン...

Android実機&エミュレータからファイルを取得する

Android端末からファイルを取得する機会があったので備忘録として。。。 1.SDKのパスを追加して、adbコマンドを使用できるようにする export PATH="$PATH:[任意のパス]/Android/sdk/platform-tools/" 2.ファイルを取得する $ adb pull [Android端末上のファイルパス] [PC上のファイルパス] data/data以下のファイルはpullすることはできない。そのため、data/data以下のファイルを取得するには、pull可能な場所にファイルをコピーする必要がある。 adbコマンドではcpコマンドが使えないため、ファイルの...

SpringONE2GX in ワシントン! - ただの感想編 -

ワシントンに行ってきました。 みなさんこんにちは。 12月はFallout4のために、有給を沢山取ります。やまさきです。 相当時間が経ってしまいましたが、9月11日から9月19日までワシントンD.C.に行って参りました。 目的はそうです! 「SpringONE2GX」 Spring初心者、英語話せない。。。 そんなことはどうでも良いんです。アメリカをSpringを感じることが目的です!! そもそも、Springってなんだろう? SpringとはJava向けのオープンソースフレームワークです。 当初はDIコンテナから始まったプロジェクトだったようですが、SPRING DATA、BOOT、SEQU...

Hibernate5 で SchemaExport

Hibernate5 から SchemaExport のコンストラクタの引数が変更され、MetadataImplementor を使うようになった。 以下は、Hibernate5 で Annotation ベースの設定を SQL (DDL) に出力するサンプルです。 public class Hbm2ddl { public static void main(String[] args) throws Exception { final String locationPattern = "classpath:/sample/entity/*"; fi...

Hibernateで実行されたSQLとパラメータのログを出す

Hibernateで開発を行っている時に実際にSQLってどうやって実行されてるんだ?っと思ったりします。 そんな時にはlogback.xmlに下記のタグを追加してみてください。 そしたら下記な感じで出力されます。 12:10:02.883 [http-nio-8081-exec-4] DEBUG org.hibernate.SQL:109 - select sample0_.id as id1_11_ from sample sample0_ where sample0_.id=? and sample0_.type=? and sample0_.create_date>=? 12:1...

Javaバージョン切り替え(Linux版)

先日MacでJavaのバージョンを切り替えなければならないシチュエーションあって、依然CentOSでもこんなことやったなあと思い出しました。 OSXでのJavaバージョン切り替えについては「Brewで楽々Javaバージョン切り替え」で紹介されているみたいなのでここではLinuxでの方法を。 alternativesコマンドのインストール alternativesコマンドでJavaの設定状況を確認 コマンドの実行結果は次のようになる。「+」が現在のバージョン。 変更したいバージョンを数字で選択。(変更しない場合は「Enter」を押下) Javaのバージョン確認 出力結果