Thymeleaf + Spring の構成で、多言語化対応 Web アプリケーションのサンプルを作成してみました。 thymeleaf-i18n プロジェクト構成 ビルドツールには Gradle を使いました。 example1 │ build.gradle │ gradlew │ gradlew.bat │ ├─gradle └─src └─main ├─java │ └─example │ └─controller │ RootController.java │ ├─resources │ │ logback.xml │ │ │ └─i18n │ Messages_en.properties │ Messages_ja.properties │ └─webapp ├─css ├─images └─WEB-INF │ web.xml │ ├─spring │ │ root-contex
MessageResourceでメッセージをYAMLファイルから読み出す 動機 messages.propertiesのメンテ面倒くさいんですけおお!! Eclipseで触ると勝手にnative2asciiしてくれちゃって困るし!!11!!1 だからYAMLで書こうね 目的 SpringFrameworkを使ったアプリケーションでi18n対応をする場合、messages.propertiesのようなリソースファイル(拡張子が.propertiesなプロパティファイル)を使用することになる。 こういうやつだ #階層構造で書けないんですか?やだー! site.title=サイトタイトル site.description=サイトの説明 page.header.links.index=サイトトップ page.header.links.gettingstart=はじめる page.header.li
バージョンはSpring4.2.X系 Springでのトランザクション管理 Springのトランザクション管理は大きく分けて以下の2つの管理方法が存在する。 1.プログラミングによるトランザクション管理 プログラミングによってトランザクションを手動管理する方法。以下のようなイメージでトランザクション制御コードをソースコード内に記述する。 transactionManager.begin(); transactionManager.commit(); transactionManager.rollback(); ソースコード内にトランザクション制御コードも入りこむため、見通しが悪くなったり制御を間違えるとバグの温床にもなったりするので、極力使うべきではない。 2.宣言的トランザクション管理 「あるメソッドを呼び出したときにトランザクションをかける」と宣言する方法。以下のようなイメージでメソッ
SpringBootを使っていてDBへの登録時にTransaction管理をする必要が出てきた。 publicなメソッドに@TransactionalアノテーションをつけてExceptionを発生させれば自動的にロールバックしてくれるらしい。 というわけでやってみたのだが、ぜんっっっっっっっっっっっっぜんうまくいかない。 アノテーションに与える設定を色々と変えてみたがちっともロールバックされない。 2時間か3時間程度格闘し、Webの海をクロールしていたところ神々しい灯台が見えた。 神 一撃でうまくいった。先駆者兄貴に感謝。マジ感謝。 ただ、「直接呼ばないといけない」ってどういうことやねんと思ったので 先駆者兄貴のように困っている存在をたすけられたらと思い以下に詳述する。 ダメな例 class SampleController{ @Autowired private SampleServic
トランザクションをアノテーションでやりたくて、 @Transactionalを使ってみた時にハマった話です メソッドに@Transactional付けて、 transactionManagerのbean作って、 <tx:annotation-driven />追加して、 よし!って動かしたんだけど、全然ロールバックされなかった それどころか、デバッグで途中で止めると、普通に途中でcommitされてる RuntimeExceptionしか拾ってくれないようなので、 @Transactional(rollbackFor=Throwable.class) にしたり、 基本的にはinterfaceにしか効かないとかいうから <tx:annotation-driven proxy-target-class="true" /> にしてみたり、 クラス、もしくはpublicなメソッドじゃないと効かないと
5. DIの「D」とは? • Dependency:依存 • オブジェクトAは、オブジェクトBを使う • オブジェクトAにとって、オブジェクトBは「依存するオ ブジェクト」 • DIの「D」は、「依存するオブジェクト」を指す※ 5 オブジェクトA オブジェクトB 使う(メソッド呼出) ※「具象クラスへの依存」という解釈もあります 9. その①:使う側が自分で用意する • 使う側のプログラムが長くなる – 本質ではない処理が入り込む • 依存するオブジェクトの設定を変更したり、具象クラスを変更する場合は 、使う側のプログラムを修正する必要がある 9 public class FooDao { private DataSource dataSource; public FooDao() { BasicDataSource dataSource = new BasicDataSource();
自動変換ツールによる移行コストの削減 スタイルズでは、Struts/Struts2およびSeasar2からSpringMVCの 自動変換ツールをご提供し、移行コストの削減を図っています。 このツールはコードを解析して、Struts/Struts2/Seasar2仕様のタグを、Spring/JSTL(Java Server Pages Standard Tag Library)のタグに自動変換します。このツールをご利用いただくことで機械的な移行作業コストを大幅に削減することが可能です。 また、変換ツール実施後は、変換不可能な部分の手動によるコード修正、書き直し、テストの実施をいたします。 Struts/Struts2/Seasar2からSpringへの 移行事例一覧 Struts/Struts2/Seasar2から Springへ 移行するサービスの流れ STEP01弊社ツールを利用した 自
はじめに 社内のWebアプリケーションのフレームワークをStrutsからSpringMVCに移行しました。 移行でやったことをさらっとまとめます。 経緯 フレームワークにStrutsを採用していましたが、 StrutsはEOLを迎え、バグや脆弱性に対しての対応がされなくなりました。 社内とはいえ、そろそろ移行時期かと思い、フレームワークの検討をしました。結果、 5年後もメンテナンスが継続されてそう! 既存のコードの流用性が高そう! ということでSpringMVCに移行することになりました。 環境 Struts 1.2 Spring 4.2.3.RELEASE JDK 7.0 JSP 2.2 Apache Tomcat 7.0.55 準備 急いては事を仕損じます。 Spring初心者の場合は、世界に向けてあいさつをするところから始めましょう。 私はEclipseにSpring Tool Su
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く