Tagbangers Blog

佐々木 亜里沙

​Spring MVC @RequestMappingのマッピング優先度まとめ

Controllerに使う@RequestMappingにはURIの変数や正規表現などいろいろなパターンを指定できますが、どのコントローラにマッピングされるかという優先度をいつも忘れてしまうのでまとめてみます。 ちなみにパターンとして記述できる記号についてはAntPathMatcherのAntPatternComparatorの中で説明されているようで そのdocによると、 ? → 1文字にマッチ * (ワイルドカード) → 0かそれ以上の文字数にマッチ ** (ダブルワイルドカード) → 0かそれ以上のディレクトリにマッチ という意味になってます。 URI変数({variables})とワイ...

iReportが起動しないときの対処方法

iReportでは納品書や請求書など帳票のデザインテンプレートをGUIで作成できるものですが 最新version(5.6.0)をダウンロードして正常にインストールできたのに、起動だけしないという事象が発生しました。 必要事項を確認するとJDK1.5 or 1.6が必要とのこと。 自分の環境ではJDK1.8のパスを環境変数に設定しているのですが、 iReport用に、jasperReports/iReport-5.6.0/etcの下の、ireport.confを編集することで、JDKのパスを上書きできます。 # default location of JDK/JRE, can be overri...

stashとgithubのミラーリング

Stashのリポジトリをgithubのリポジトリにミラーリングしたいときに「Repository Mirror Plugin for Stash」プラグインを使うとかんたんにできたのでメモします。 github側の設定 githubの「アカウント設定(cog)」>「Personal settings」>「Applications」の、『Personal access tokens』でミラーしたいリポジトリ用にトークンを生成します。これを後で使うのでコピーしておく。 Stash側の設定 Stashの「システム設定(cog)」>アドオン「Find new add-ons」で、「Repository...

nginxでSEOを考慮したメンテナンスページを表示する試み

アプリのメンテナンスをするときにぺら1のメンテナンスページを表示しバックで作業する場合があると思いますが、そのときに考慮したいのが稼働中サイトのSEO対策です。 大事な点は、ステータスコード503でメンテナンスページを表示することです error_page 503 @maintenance; location @maintenance { add_header Retry-After "Wed, 18 Feb 2015 03:00:00 GMT"; expires -1; rewrite ^(.*)$ /maintenance.html break; }

Spring MVCでリクエストヘッダを見てマッピングする方法

Spring MVCでリクエストヘッダをマッピングの条件とする方法を調べてみました。 consumes: リクエストヘッダのContent-Typeをマッピング条件として絞り込む @Controller @RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json") public void addPet(@RequestBody Pet pet, Model model) { // implementation omitted } produces: リ...

ThymeleafでSpringの環境変数を使う

@の後ろにBean名をつけることで、そのBeanにアクセスすることができます。 *ThymeleafでSpringのpropertyファイル(application.propertiesなど)に記述している変数を利用したい場合 ${@environment.getProperty('property.key')} *環境ごとに表示を変更したい場合 This is the production profile or This is the production profile という形で利用できます。 ちなみにシステム環境変数を利用する場合は、以下のように書...

バルセロナのInocuo the Signに会ってきました

1週間いただいてお会いしたかった人たちに会いに行くためバルセロナに行ってきました。 今回どうしてもお会いしたかった会社が、うちの会社のロゴを作ってくれたInocuo the Signというところです。 コーポレートサイトを作りたくて、かっこいいデザインを作ってくれる会社がないかなあと、2年前にイノクオのサイトを見つけて 思わずメールしたのがきっかけです。それからコーポレートロゴ・サイトともにリリースし、今のサイト Tagbangers, inc.にいたります。 こちらの要望に対するフィードバックのクオリティの高さと丁寧さ、提案の多さ(20種類くらいはいただいているはず)がとても印象的でした。 ...

自己参照で双方向関連を持つデータを削除する(delete bidirectional self reference data)

双方向の関連をもつ自己参照テーブルのデータを消したいときに、以下のEntityの書き方では外部キー制約のためエラーとなってしまいました。 @Entity @Table(name="article") @PrimaryKeyJoinColumn @DynamicInsert @DynamicUpdate public class Article { @ManyToMany @JoinTable( name="article_related_article", joinColumns = { @JoinColumn(...

Effective Java読み直し1-staticファクトリメソッド(2)

staticファクトリメソッドの3つ目の長所から メソッドの戻り値型の、任意のサブタイプのオブジェクトを返すことができる 参考:サブタイプ=継承関係にあるクラス メリット 返すオブジェクトのクラスをpublicにすることなく、APIがオブジェクトを返せる(実装クラスを隠蔽できる) staticファクトリメソッドに対する引数の値に応じ、呼び出しごとに返すオブジェクトを変えることができる 例 JDBCのgetConnectionメソッド JDBCはServlet APIのように中身がないinterface群で、MySQLやOracleなどの各プロバイダがデータベースに接続するための実装を提供してい...

Effective Java読み直し1-staticファクトリメソッド(1)

ということでEffective Java 第2版を読んでいくのです 項目1. コンストラクタの代わりにstaticファクトリメソッドを検討する オブジェクトの生成:基本的にはnewする(コンストラクタを呼ぶ)のですが別の方法もあります。 … staticファクトリメソッド static ファクトリメソッドとは?-クラスのインスタンスを返す、staticなメソッド *例:Boolean valueOf(boolean b)はnewせずにBoolean.TRUEまたはBoolean.FALSEのクラス変数を返す。 staticファクトリの長所 1. コンストラクタは名前(メソッド名)がもてないけど...