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

なみひらブログ

学んだことを日々記録する。~ since 2012/06/24 ~

Java

「JJUG CCC 2017 Spring」に行ってきました

Javaの日本ユーザ会のカンファレンスに行ってきたのでメモっときます。 ※CCCは「Cross Community Conference」の略らしい。 www.java-users.jp 開催概要 日時 2017/05/20(土)9:30-18:30 場所 ベルサール新宿グランド コンファレンスセンター 主催 日本Java…

Androidアプリでのセキュリティ情報の定義方法

背景 Androidアプリ開発にてセキュリティ情報(他サービスのAPIキーなど)を定義しますが、それらの情報はGithubなどのソースコード管理にコミットはしないほうがいいので、その定義方法を書いておきます。 定義方法 セキュリティ情報の定義 security.proper…

Fabric環境構築の作業メモ

背景 Androidアプリ開発にてアプリでTwitter連携がしたくなったところ、それを実現する際、最近は「Fabric」というフレームワークがよいらしい(なみひら調べ) なのでFabricを導入してみたときの作業メモです。 Fabric - App Development Platform for team…

Java IDEの所感メモ

背景 最近やったIDE関連の作業にあたっての所感をメモっときます。 メモ NetBeans NetBeans 8.2の話 使い勝手的にはEclipseと大差なし。 コンソール出力がコマンドベースで詳細に表示される、リポジトリとの差分などがテキスト形式でも表示されるので、裏の…

「LINE DEVELOPER DAY 2016」に行ってきました

「LINE DEVELOPER DAY 2016」に行ってきました。 LINEサービスを利用した開発者向けセッション、LINE開発の取り組み紹介などなど。 linedevday.linecorp.com 開催概要 日時 2016/09/29(木)10:40-18:30 場所 渋谷ヒカリエ 9F ヒカリエホール 主催 LINE株式…

Java9で追加される機能を少し見てみた話

背景 2017/03/23リリース予定(今のところ)のJava9の機能一覧をたまたま見かけたので、ちょっと確認してメモっときます。 ※Java9はリリースが一回遅れていて、これ以上遅れないように幾つか削られるかも(;´Д`) 現状の機能一覧(予定) http://openjdk.jav…

EL式内でEL式が使えない件

背景 JSPでEL式を書くことはよくありますが、そのEL式内でEL式を書こうとしたらエラーになったので、その対処法のメモです。 起こったこと 以下のようなコードを書いたらエラーになった(;´Д`) * 以下※はコメント (略) <select id="userId" name="userId"> <c:forEach var="user" items="${Users}" > ※ModelにセットしてあるUserリス</c:foreach></select>…

Spring Securityを適用するときの作業メモ

背景 Springプロジェクトが提供する認証の機構「Spring Security」を適用したときのメモです。 今回はログイン・ログアウト・ロールに合わせた画面表示切り替えあたり処理を書いてみます。 環境 前提として以下を利用して書いています。 maven JSP メモ 必要…

Spring MVC+Jacksonで日付文字列をLocalDateTimeにマッピングする

背景 spring-webmvcを使ったWebAPIで、Java8で追加されたLocalDateTimeに対応したときのメモです。 ゴール 以下のようなJSONをLocalDateTimeのパラメータにマッピングします。 (日時のフォーマットは一例です) リクエスト { "name" : "test", "createdAt" …

SpringBoot Actuatorの動作確認メモ

背景SpringBoot Acuatorについて動作確認したので、そのあたりのことをメモっときます。 概要 » Spring Boot Actuator でサーバの状態を確認する TECHSCORE BLOG 簡単にいうと、Spring BootアプリケーションにAcuatorを適用すると、アプリケーションの設定や…

Java Decompiler

eclipse上でクラスファイルの中身をみるために必要なpluginをメモっときます。 インストール手順とかもリンク先に書いてあります。Java Decompiler

利用しそうなJava実行時のオプション

背景以下の本を読んで、利用しそうな「Java実行時のオプション」をメモっときます。Javaパフォーマンス作者: Scott Oaks,アクロクエストテクノロジー株式会社,寺田佳央,牧野聡出版社/メーカー: オライリージャパン発売日: 2015/04/11メディア: 大型本この商…

MySQL Connector/JがJava8で追加された日付型をサポートしていた話

背景JavaからMySQLを使う際にJava8で追加された日付型が使えるか試した結果をメモっときます。 Java8で追加された日付型というのは"LocalDateTime"とか。 Java日付時刻APIメモ(Hishidama's Java8 Date and Time API Memo) 結論Java8で追加された日付型がMySQ…

パフォーマンスを意識したJavaコーディング

この記事はJava Advent Calendar 2015 - Qiitaの9日目の記事です。8日目の記事:JavaでHttpのGETとかPOSTをさくっと実装したい - Qiita 10日目の記事:JavaFXのUIをJUnit形式でテストする - Katsumi Kokuzawa's Blog背景以下の本を社内の読書会で読んで、「…

SpringFrameworkで多言語を扱うときの実装メモ

背景 SpringFrameworkを使って多言語対応する際の実装をメモっときます。 ブラウザやクライアントの言語によって返すJSONの内容を変えたいときなどに利用します。 今回はWebAPI用のメモです。Viewでの多言語対応はまた別途記載します。 例: (言語指定:英…

Java8言語仕様でよく使う書き方のまとめ【Stream、Lambda関連】

背景最近良く使っているJava8の構文についてまとめておきます。 普段似たような処理を書きたいときに「あれっ?どんな感じで書くんだっけ?(;´Д`)」となるので備忘録的なメモです。小言以前はif/for文ぐらいを駆使してゴリゴリ書いていたので言語仕様に振…

SpringFrameworkでのJSON Validationの実装/動作確認メモ

背景SpringFrameworkでAPIを実装するときにリクエスト内容の妥当性確認(Validation)をよく行うので、その実装パターン/挙動をメモっときます。 今回は、ユーザ情報をPOSTする際に妥当性を検証するAPIを題材にしています。事前準備必要なライブラリを入れる…

「Spring in Summer ~夏なのにSpring」に行ってきました

「Spring in Summer ~夏なのにSpring」に行ってきました。 Java向けのアプリケーションフレームワークである「Spring Framework」のユーザカンファレンスです。summer - 日本Springユーザ会開催概要 日時 2015/08/28(金)10:00-18:30 場所 株式会社リクル…

SpringアプリケーションでJSONレスポンスを返却するときに"406 Not Acceptable"が発生したときの話

背景@RestControllert使ってJSONレスポンスを返すようにして、アクセスしてみたら以下のエラーが発生しました。その際の対応をメモっておきます。 (以下レスポンス(HTML)の抜粋) 406 Not Acceptable The resource identified by this request is only capa…

SpringMVCアプリケーションにTilesを適用するときにやったことメモ

背景最近いろんなところで画面構築にTilesというフレームワークが使われているので、ちょっと動作確認してみると仕組みの勉強のメモです。 Apache Tiles - Home作業メモTilesライブラリへの依存追加pom.xmlにTilesライブラリへの依存を追記します*1。 <dependency> <groupId>org.a</groupid></dependency>…

Arrays.asListが返すListの仕様について

背景Java8でCollectionインターフェースに追加されたremoveIf()を試そうと思ったら、別件でエラーが発生したのでメモっときます。 修飾子と型 メソッドと説明 default boolean removeIf(Predicate filter) 指定された述語を満たすこのコレクションの要素をす…

MathクラスのnextDownメソッド

背景以下の本にJavaプログラマーなら習得しておきたい Java SE 8 実践プログラミング作者: Cay S. Horstmann,柴田芳樹出版社/メーカー: インプレス発売日: 2014/09/22メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る doubleとfloatの両…

JavaFX関連クラスについてJUnitテストを実施するための準備

背景JavaFXのクラスを使った関数を実装した際に、その関数も単体テスト(JUnit)を行う必要があります。そのテスト実行の際に事前準備が必要だったので、そのことについて記載します。前提今回、以下のようなクラスを考えます。JavaFXパッケージのクラスを使…

Java7以降のnullチェックの仕方

背景メソッドを実装する際、そのメソッドの実行の事前条件を満たしているか確認するため「防御的プログラミング」をする必要があります。その「防御的プログラミング」の例として、「引数のnullチェック」があります。その「引数のnullチェック」の記法につ…

ラムダ式がどのように実現されているかを確認してみました。

背景Java8で新仕様として「ラムダ式」が追加されました。 そのラムダ式がどのように実現されているか、確認してみました。簡単な確認Java7以前比較のために、まずJava7以前のコードを以下のように書いてみます。 Java7まではメソッドの引数として、無名クラ…

Java8で、Objectが持つメソッドについてはインターフェースでdefault実装をできないようにしている理由

背景Java8にて、インターフェースにdefaultメソッド(メソッド定義と実装)を定義できるようになりました。しかし、その実装においてObjectクラスが持っているメソッド(toString()とかequals()とか)は、インターフェース内でdefault実装として定義できない…

社会人人生で出会った良本のまとめ【入社~5年】

今年度が終わると社会人満5年が経つので、この期間に読んだ良本をまとめておきます。略歴 学生時代 物理専攻、プログラミング経験なし オシロスコープ、Linux(Vine Linux)などなど。 1年目 社会人研修、情報系研修 C、C++、Java、オブジェクト指向、組み込み…

「Java6以前」と「Java7&8」の言語仕様をコードで比較しました。

最近Java8の言語仕様でコードを書いていて、「このコードをJava6以前で書いたらどんな感じだっけ?」と気になったので、比較してみました。 簡潔な記載になってきて、だんだんコード量が少なくなっています。(≒バグ混入機会が減る。)~今でいう「なんで拡張fo…

JDK の互換性の情報

JDKの新しいバージョンがリリースされると、下位バージョンとの互換性についての情報もリリースされます。例えば、以下のような情報です。 JDK 8の互換性ガイド今まで意識していませんでしたが、製品のJDKのバージョンを上げる際には一読しておきたいもので…

interfaceがObjectのメソッドをオーバーライドする理由

以下の書籍Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング作者: Cay S. Horstmann,柴田芳樹出版社/メーカー: インプレス発売日: 2014/09/22メディア: 単行本(ソフトカバー)この商品を含むブログを見るに以下のような記載があったので…

「第七回 #渋谷java」に行ってきました。

プログラミングJavaの勉強会(LT大会)「第七回 #渋谷java」に行ってきました。第七回 #渋谷java - connpass開催概要 2014/07/19(土)14:00-17:00 株式会社ビズリーチ@渋谷クロスタワー12F 参加者数 約20人 会場雰囲気@始まる前 セッションメモと雑記参加…

coreライブラリを利用するための準備

以下のように、jspでcoreライブラリのようなタグライブラリを使う場合、 <c:forEach items="${items}" var="item"> ID:<c:out value="${item.id}"/><br> Title:<c:out value="${item.title}"/><br> </c:forEach> まずjspで以下を宣言する必要があります。ネット上だと意外と書いていない(;´Д`)当たり前のことだからも知れませんが。。。 <%@ taglib uri='http://java.sun.com/jsp…

データベースへの安全な接続の方法

以下の書籍に、「データベースへの安全な接続の方法」についても記載があったので、メモっときます。体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践作者: 徳丸浩出版社/メーカー: ソフトバンククリエイティブ発売日: 201…

Tomcat 7.xとTomcat 8.xのJDBC Driverの扱いの違い

Tomcat 7.xまでは、JDBC Driverは{webapp}/WEB-INF/libなどに置いていましたが、Tomcat 8.xだとTOMCAT_HOME/libに置かないといけなくなった。 理由としては、そもそもJDBC DriverはDriverManagerで管理されていて、そもそもそれは全アプリで共有される資源だ…

「第六回 #渋谷java」に行ってきました。

プログラミングJavaの勉強会(LT大会)「第六回 #渋谷java」に行ってきました。第六回 #渋谷java - connpass開催概要 2014/05/31(土)17:00-20:00 株式会社ビズリーチ@渋谷クロスタワー12F 参加者数 約20人 発表資料はこちら参照 第六回 #渋谷java まとめ …

Beanをうまくインジェクションできなかったときの話

springで書いたコードをtomcatにデプロイしたら、以下のエラーがでました。 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [jp.co.**.dao.XXDao] found for dependency: expected at least 1 bean which qu…

org.springframework.jdbc.core.RowMapper を解決できません

Java+Springで、DBに接続するコードを書いたら、以下のコンパイルエラーがでました。 型 org.springframework.jdbc.core.RowMapper を解決できません。必要な .class ファイルから間接的に参照されています pom.xmlにて、 以下の記載をする必要があるそうで…

eclipseでMavenビルドしようとしたら「指定されたjreインストールが存在しません」が発生した。

eclipseの設定にて、JavaのJRE関連の設定をいろいろいじっていたら、 いざビルドしようとしたら、「指定されたjreインストールが存在しません」というエラー発生しビルドができなくなってしまった。いろいろ調べたら、以下の記事どおりだった。Eclipseの使い…

コーディング時に気をつけること。

最近忘れ&サボり気味なので、再認識(;´Д`)Copyrightは必ず書くお給料を貰って書くコードなので。 /* * Copyright (C) 2014 XXXX Co.,LTD. All rights reserved. */ インデントは、タブではなくて、スペースにするタブは環境依存があるから、いろんなヒト…

JJUG ナイトセミナー 「Spring Framework 特集」に行ってきました。

日本Javaユーザーグループ(JJUG)のナイトセミナーに行ってきました。 今回は、業務で使っているJavaフレームワーク「SpringFramework」の特集でした。開催概要 2014/01/21(火) 19:00-21:00 日本オラクル青山センター 参加者数 約100人 【東京】JJUG ナイト…

Springでのプロパティ変数のデフォルト指定

一般的にSpringでのプロパティ変数の指定は以下のように指定します。sample.properties # URL url=https://www.xxx.yyy.zzz.com/ sample.javaでの指定の例 package com.zzz.yyy.xxx; /** * サンプルクラス * * @author kohsuke NAMIHIRA * */ public class S…

Javaで、プリミティブ型の名前でClassオブジェクト返すメソッドを用意した。

Javaおいてリフレクションを利用する際、クラス名を指定してClassオブジェクトを得るメソッド クラス:java.lang.Class メソッド:static Class forName(String className) 指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Class オブ…

Java SE 7 ( JDK7 )言語仕様

ソフトウェアが時代とともに、バージョンアップしていくように、 プログラミング言語もバージョンアップしていきます。 機能拡張はもちろん、プログラミング言語のバグが修正されます。 (プログラミング言語にバグがあるなんて、プログラムを勉強してから知…