タグ

ブックマーク / megascus.hatenablog.com (14)

  • 日本語でのJavaDocの書き方 - 水まんじゅう2

    JavaDocを何で書くの?とか、書き方とかをまとめたページはたくさんありますが、日語特有の情報が抜け落ちていたり、英語でのJavaDocの書き方を説明するものばかりなので、日語特有の情報をいくつか書きたいと思います。 なお、JDK 8u144あたりでの挙動です。将来では変わるかもしれません。 JavaDocの書き方の一般的なものを知りたい場合は公式のマニュアルを見るのが一番良いと思います。 https://docs.oracle.com/javase/jp/8/docs/technotes/tools/windows/javadoc.html サマリー文の後は2つ改行を入れましょう。 /** * 一行目はサマリー文としてその処理(クラス、メソッド等)の概要として扱われます。 * * <p>英語では行末に「.」(ピリオド)が入り、JavaDocではピリオドまでを1行目のサマリーとして扱

    日本語でのJavaDocの書き方 - 水まんじゅう2
  • log4jdbcで設定したはずなのに有効にならない場合 - 水まんじゅう2

    log4jdbcのjarを依存ライブラリに入れて、jdbc urlにlog4jdbcを入れたのにlog4jdbcが有効にならない場合がある。 DriverManagerがDBへのコネクションを作成するときにlog4jdbcで使用されているロガー類がすべて無効化されている場合にはlog4jdbcがラッパーを作成せずに、log4jdbcでのログ出力が行われない。 https://github.com/arthurblake/log4jdbc/blob/master/src-jdbc4/net/sf/log4jdbc/DriverSpy.java#L740-L760 https://github.com/arthurblake/log4jdbc/blob/master/src-jdbc4/net/sf/log4jdbc/Slf4jSpyLogDelegator.java#L90-L95 これは、

    log4jdbcで設定したはずなのに有効にならない場合 - 水まんじゅう2
  • Java EE Webアプリケーションをモジュール化して組み合わせる - 水まんじゅう2

    これはJava EE Advent Calendarの9日目の記事です。 完全に市民権を得た感じのあるSpring Bootですが、機能は複数のjarに分けて固められており、jarを追加するだけで機能を追加することが出来ます。 それと同じ事をJava EEでもやってみようというお話です。 たとえば、以下のようなクラスを用意します。 @WebFilter(urlPatterns = "/*", filterName = "auth") public class AuthenticationFilter implements Filter { @Override public void init(FilterConfig fc) throws ServletException { } @Override public void doFilter(ServletRequest req, Serv

    Java EE Webアプリケーションをモジュール化して組み合わせる - 水まんじゅう2
  • どこからも使用されてないクラスを列挙する - 水まんじゅう2

    これはJava Advent Calendarの2日目の記事です。 さて、Javaで開発をしているといつの間にかどこからも使用されていないクラスというものが出てきてしまいます。 リファクタリングや仕様変更の結果、呼び出されてなくなったクラスです。 それら、どこからも使用されてないクラスを一覧化してみます。 まず、使用されているクラスを一覧化します。 一覧化にはjdepsを使用します。 jdepsの概要についてはCLOVERの記事を参照してください。 CLOVERの記事ではclassもしくはjarを指定していますが、実はパッケージ(フォルダ)を指定することで、その下のクラスの依存先をすべて出力してくれます。 使用されているクラスの一覧が出来たら、全体のクラスの一覧から引き算してあげます。 package 配下のクラス一覧を取得する方法はいろいろあるようですが、今回はGuavaのClassPa

    どこからも使用されてないクラスを列挙する - 水まんじゅう2
    hikazoh
    hikazoh 2016/12/11
  • JDBCでOracleのchar型のカラムを検索する。 - 水まんじゅう2

    char型は桁数に足りない場合、スペースで勝手に埋められます。*1 検索する場合は、空白スペースを埋めた状態で検索してあげる必要があります。 ここで、OracleのJDBCドライバに入っているPreparedStatementの実装、OraclePreparedStatementのメソッドsetFixedCharを使用することで、空白で埋めるのを適切に行ってくれます。 Oracleの公式ドキュメントを見るとPreparedStatementをOraclePreparedStatementにキャストして使用してくださいと記載してあります。 データベース内のCHARデータは、列幅まで埋め込まれます。このため、SELECT文のWHERE句に文字データをバインドするためのsetCHARメソッドの使用に関して、制限が生じます。WHERE句の文字データも、SELECT文で合致させるために、列幅まで埋め

    JDBCでOracleのchar型のカラムを検索する。 - 水まんじゅう2
  • パーフェクトJava EEを読み始めた(パラ見した感想) - 水まんじゅう2

    ポケモンに飽きてきたので さて、こそこそっとパーフェクトJava EEを読み始めてみました。 とはいってもまだ1章のみ。 以前からパーフェクトJava EEが発売されるという話は聞いていて、JPAの章についてはレビューにも参加しているので、 JPAの章については安心してみてください的な感じはあります。*1 そのうち全部読むのですが、1章と全体をパラ見した感想としては、 こののターゲットはこうですと記載されているものと、実際に読める人間には随分と隔たりがありそうだなぁという印象でした。 JSPどこいった このではJSPについての説明はありません。ただ、JSPを使った説明はたくさんあります。 そのため、JSPを理解していることが前提となっており、少なくとも、これからJava EEを始めたい人が読むべきではないのではないかなぁと思いました。 そういえば、パーフェクトJavaのおまけにJav

    パーフェクトJava EEを読み始めた(パラ見した感想) - 水まんじゅう2
  • Java 8から増えてたExplicit receiver parameters - 水まんじゅう2

    Java 8からこういう書き方が出来るようになっていたようです。(初めて知った) public class Main { public String getString(Main this) { // thisで自分自身が引数になっている return this.toString(); } public static void main(String[] args) { Main main = new Main(); System.out.println(main.getString()); //呼び出すときは何も書かなくてもよい } } 何がうれしいかというと、自分自身を呼び出すときにアノテーションがつけれるようになる。(そして処理が出来るようになる) なんか、おおっ!という感じ。 呼び出すときに何も書かなくてよいというのがものすごくJavaっぽくないので驚きました。 http://bl

    Java 8から増えてたExplicit receiver parameters - 水まんじゅう2
    hikazoh
    hikazoh 2016/06/19
  • アノテーション入門勉強会を開催してきた。 - 水まんじゅう2

    DoorKeeper https://kumamotojava.doorkeeper.jp/events/42272 当日の資料 https://github.com/megascus/annotation-handson ちょっと間が空いてしまった*1けれども、先日熊にてアノテーション入門という名前で勉強会を開いてきた。 最近のJavaのフレームワークはたいていアノテーションが使用されているが、アノテーションが何やってるかよく判らないよねぇという声が聞こえたので。 とりあえず、目標地点としてDIを見据えて、アノテーションを使って何か作れるようにと、アノテーションがいかに何もしていないのかが判るように行ったつもりです。 とはいっても、DIについてはきしださんがこの勉強会を告知した後にDIを自分で実装してみるという記事を書いてくださったので、とりあえず、そちらの前提条件となる知識を網羅でき

    アノテーション入門勉強会を開催してきた。 - 水まんじゅう2
  • Java 8u92から増えた -XX:+CrashOnOutOfMemoryErrorと-XX:+ExitOnOutOfMemoryErrorを試してみた - 水まんじゅう2

    ※91だと思ってたら増えたのは92からでした。 試したのはWindowsで。OOM発生時にJVMを確実に落とすオプションらしい。 -XX:+CrashOnOutOfMemoryError >java -XX:+CrashOnOutOfMemoryError Main Aborting due to java.lang.OutOfMemoryError: Java heap space # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (debug.cpp:308), pid=6760, tid=0x00000000000026a4 # fatal error: OutOfMemory encountered: Java heap space # # JRE vers

    Java 8u92から増えた -XX:+CrashOnOutOfMemoryErrorと-XX:+ExitOnOutOfMemoryErrorを試してみた - 水まんじゅう2
    hikazoh
    hikazoh 2016/04/23
  • Java EE 7徹底入門を読んだ(jBatch) - 水まんじゅう2

    アンケートとったら次はjBatchを読めという話になったので、今日はjBatchです。 jBatch自体はJava EE 7から新しく増えた仕様で、現時点ではアプリケーションサーバーでjBatch自体の実装は行われていますが、jBatchを開発するツール類はまったくというほど整備されていません。 かつて何かが通った道と同じようにclassを定義してそれらをxmlで組み合わせて使用するという祖結合にしたいんだろうなぁというのはわかるけれども、実際にはデータ形式をそれぞれのjobで併せて使用しないといけないので、javaの型の恩恵を得られない形式となっており、単純に筋が悪い。これは流行らないなぁという事がみんなわかっているのでしょうか。 書籍になるということ 個人的に書籍にするというのは非常に労力がかかることで、お金を取る分の品質が求められると思っています。 の内容の整合性をとるために編集者

    Java EE 7徹底入門を読んだ(jBatch) - 水まんじゅう2
  • Java EE 7徹底入門を読んだ(JAX-RSあたり) - 水まんじゅう2

    次はJSFを読むと約束したな。あれは嘘だ。 JAX-RSは9章ですね。 RESTとSOAPの目指すべきところ このでは違うと言ってますがたぶん一緒。 歴史的に見て、RESTよりもSOAPの方が先に出てきました。 しかし、SOAPはHTTPを使用する場合はすべてのアクセスをGETもしくはPOSTでしか受け付けない規定があるため、データの検索や、データの更新がすべてGET/POSTで行われてしまい、インフラレイヤーからだとどのアクセスが更新なのか、どのアクセスが検索なのかが判らず、どのデータをキャッシュしてもよいのかの判断ができないということが問題となります。 それを解消するためにURLごとにこのURLは更新作業なのでキャッシュしてはいけない、このURLは検索なのでキャッシュしても大丈夫〜みたいなのを定義していたのですが、それは面倒くさい。 HTTPの(ほぼ使われていなかった)METHODに

    Java EE 7徹底入門を読んだ(JAX-RSあたり) - 水まんじゅう2
  • Javaの例外処理について - 水まんじゅう2

    これはJavaアドベントカレンダーの5日目です。 最近例外処理について考えなければいけないことがあったので、こうしたほうが良いよというのをまとめます。 他の言語からJavaに移ってきた場合に微妙なところで変な感じになることがあるので。 ここで扱うJavaの例外というのはThrowableとそのサブクラスのことです。 Javaにはtry〜catch〜finallyという例外を扱うための構文があります。 try { } catch(Throwable t) { } finally { } Java7からはtry-with-resourcesや例外のマルチキャッチという新しい構文も増えました。 そちらについて詳しく知りたい人は[twitter:@skrb]さんの現場で使える[最新]Java SE 7/8 速攻入門をご参照お願いします。 現場で使える[最新]Java SE 7/8 速攻入門 作者:

    Javaの例外処理について - 水まんじゅう2
  • spring-bootの設定一覧が神すぎる - 水まんじゅう2

    Appendix A. Common application properties に設定一覧があることに気が付いた。 http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html Spring bootはお手軽に開始できるけれども、商用APサーバーに近い規模の設定項目があるわけで、 簡単に使える != 簡単に運用できる ではないということを知らしめてくれる感じがして非常に良い。 とりあえず、こちらの項目一覧を見てどんなチューニングが出来るのかを把握したい。 ちなみに、ConfigurationPropertiesで読み込まれてないはずなのに設定項目一覧にはあって、かつ有効になるものがあるので、きっとリンクが張られているクラス以外でも色々と設定が読み込まれてい

    spring-bootの設定一覧が神すぎる - 水まんじゅう2
  • はじめてのSpring Boot を頂いたので読んだ #hajiboot - 水まんじゅう2

    ということで、を頂いていたので読みました。 [twitter:@making]さんありがとうございます。*1 さて、Spring自体はJava EEに対するアンチテーゼとして生まれ、Java EE重すぎだよ!だから軽量なものを作るよ!ぐらいな感じで始まったはずがいつの間にかJava EEよりもよっぽど重量級となり、山のようなサブプロジェクトを抱え、何から手を付ければよいかわからないという問題点がありました。*2 その中でSpring Bootは数あるSpringの依存ライブラリのうち、よく使うものをベーシックパッケージとしてまとめ、それ以外のものをアドオンとしてこれまたいくつかのライブラリをまとめて提供してくれます。 そういった意味で、初心者には難しい、"数多くのSpringのライブラリのうち、何を使用すればよいのか"というのを解消してくれるツールとして非常にありがたいものです。 Jav

    はじめてのSpring Boot を頂いたので読んだ #hajiboot - 水まんじゅう2
  • 1