前回は Pivotal社に所属するSpring コントリビュータの Josh Long 氏によるプライベートセッション「Bootiful Application」のうち、マイクロサービスと Spring Boot の内容を紹介しました。 今回は、後半部分である Spring Cloud についてのレポートです。 なお、セッションではLong氏が次々とソースコードを矢継ぎ早に書き換えていったため、 この記事に掲載するサンプルコードは、筆者が内容に即したものをあらためて作成したものになります。 Spring Cloud マイクロサービスでシステムを構築すると、複数のSpring Boot アプリケーションが連携する分散構成となります。 Spring Cloud は分散構成のアプリケーションを制御するためのプロダクト群です。 複数のアプリケーションの設定管理、サービス管理、負荷分散、耐障害性、セ
SpringでField InjectionよりConstructor Injectionが推奨される理由を調べてみたメモです。 (2016/12/30) サンプルコードにfinalをつけるように修正 (2017/03/29) Immutabilityについて追記 --- 家でも会社でもIntelliJを使って開発しているのですが、 Spring Bootで@Autowired(@Inject)を使うと下記のような警告が出るようになりました。 警告内容を見てみると、フィールドインジェクションは推奨されません、とのこと。 「Field injection is not recommended.」 警告の詳細を見てみると下記のように書いてあります。 「Field injection is not recommended. Spring Team recommends: "Always use
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ をテキトーに訳した。Spring Framework Reference Documentation 4.1.xのIII. Core Technologies 7. Validation, Data Binding, and Type Conversionをテキトーに訳した - kagamihogeの日記の続き。 8. Spring Expression Language (SpEL) 8.1 Introduction Spring Expression Language(SpEL)とは、強力な式言語で実行時にオブジェクトグラフの検索と操作を行います。シンタックスはUnified ELに似ていますが、追加機能があり、notably
formの中にsubmitボタンが複数ある場合に、どのボタンが押されたかはリクエストに含まれるパラメータでわかります。具体的にはbutton1というname属性のボタンを押した時には、button1パラメータが送信されます。それを利用して、同じURLに対してパラメータの有無によって分岐することができます。 @RequestMappingのparams属性で、任意のパラメータが送信されている場合にそのメソッドが使用されます。 package com.example.spring.controller.c021; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.we
その名のとおりJavaBeansの為のValidationの仕様であるJSR303ですが、近頃でもないですがHibernateはもちろん、その他SpringやOvalなどの周辺フレームワークの対応が進んでずいぶん使いやすくなってきました。 ところでアプリケーション作っててValidationの仕組みって毎回悩みませんか?私がJavaでWebアプリケーションつくりはじめた頃なんかだとStruts1.xが全盛期でvalidation.xml、validation-rule.xmlとか使って書いてましたが(今考えれば二度とやりたくないですねw)、今でも毎回どのチェックをどのレイヤ(アプリケーションレイヤ?ドメインレイヤ?)に持たせるかとか、データストアに問い合わせしないといけないValidationって画面の入力だけでチェックできるのとどう管理しようかなとか、色々と悩むこともしばしばです。最近D
Spring Boot その5 いろいろサンプルをみていたら,なんとなく形が見えてきたような気がする(気がするだけ?かも)。 今回は,なじみの無かったアノテーション定義でのDIについて調べつつ,今までのサンプルを分解,再構築します。Spring Boot 1.1.6も出たみたいですしね。 アノテーションについて パッケージ名をみると,どのSpringコンポーネントに由来するか,わかります。 @EnableAutoConfiguration import org.springframework.boot.autoconfigure.EnableAutoConfiguration; みえない裏の動作としては,spring-boot-autoconfigure-1.1.6.jar内のspring.factoriesで定義されているクラス内の設定が自動的にロードされる。Spting Boot
従来のSpring開発者の常識では、web.xmlにて ContextLoaderListenerを設定してWebアプリケーションで共通のコンテキストを読み込む DispatcherServletを設定して、サーブレットごとのコンテキストを読み込む というように2階層のアプリケーションコンテキストを読み込ませることが普通でした。この構成ではちょっとわかりにくいのですが、DispatcherServletの読み込んだコンテキストがContextLoaderListenerの読み込んだグローバルなコンテキストの子供として階層化されます。子供のコンテキストは親コンテキストにアクセス可能ですが、その逆は不可能ということにより、通常はコントローラーやDispatcherServlet固有の各種オブジェクトの設定を子供のコンテキスト側で読み込ませ、サービス層などその他のクラス親のコンテキストで読み込ま
SpringアノテーションをJavaと並べてまとめ クラス対象のアノテーション Springアノテーション @Component SpringDIコンテナにbeanとして登録したいクラスへ付与する bean定義ファイル(.xml)のタグと同じ働き bean名をつけたいときは下記のようにする @Component("name") このアノテーションを使うとこはbean定義ファイルに「」を記述しておくこと @Service @Componentと基本的には同じ働きをするが、Service層(ビジネスロジック等)を対象としている Service層とその他のbeanの違いを明確にするために使用する このアノテーションを使うとこはbean定義ファイルに「」を記述しておくこと @Repository @Componentと基本的には同じ働きをするが、Persistence層(DAO等のDBアクセスを行
Spring Boot + Domaでjsonを返すRESTサーバを作ってみました。 マルチテナントアプリという要件があったので、データソースを動的に切り替えられるようにしています。 以前試した CDIで複数データソースの切り替え のSpring + Doma版です。 データソースを動的に切り替えるためのポイントは以下になります。 @ComponentScanアノテーションのscopeResolverでJsr330ScopeMetadataResolverを指定し、スコープをPrototypeにする @EnableAutoConfiguration @ComponentScan(basePackages = "info.matsumana", scopeResolver = Jsr330ScopeMetadataResolver.class) public class Applicatio
IoC Container, Events, Resources, i18n, Validation, Data Binding, Type Conversion, SpEL, AOP, AOT.
One of the areas in which Spring excels is in the separation of view technologies from the rest of the MVC framework. For example, deciding to use Velocity or XSLT in place of an existing JSP is primarily a matter of configuration. This chapter covers the major view technologies that work with Spring and touches briefly on how to add new ones. This chapter assumes you are already familiar with Sec
Spring MVCの勉強をしていて、Springカスタムタグの日本語情報が少なかったので簡単にまとめまてみました。今回はformタグです。 Springのバージョンは3.1.2を基準にしています。3.1.*系であれば多分動きますが、違う場合には注意が必要です。 記事での説明はあってないようなものなので、動くサンプルを見てもらうのが手っ取り早いと思います。サンプルは、githubに置いてあります。 https://github.com/kuwalab/spring-form-sample EclipseのWTPの動的Webプロジェクトとして作成しています。 共通の属性 formタグのほとんどで共通している属性があります。 ドキュメントを見るとたくさんあるように見えますが、ほとんどがHTMLに標準的に持っている属性そのままか名称を変えたもの(class→cssClass、style→cssS
ミ通信(本編) 転職がかない、2006年1月より東京渋谷で新たに働く一介のITエンジニアの日記。徒然なるままに雑記などを書いていきたいと思います。 今更過ぎてアレですが、使ってきたフレームワークとかいろいろを見直そうと思い、 Spring 3.1 + MyBatis + MySQL で作ることにしました。 ついでに、今更過ぎて恥ずかしいのですが、Mavenも使って開発することに。 開発環境は、 ・Eclipse 3.7(日本語化済み) ・Windows7 ■m2e(EclipseのMavenプラグイン)のインストール Eclipse3.7からは、m2eに名前が変わってるっぽい。こちらは、Maven3同梱で、別途Mavenをインストールする必要なし 参考にしたのは、こちら → 4. Eclipseとの連携 → [Java]Eclipse 3.7 で Maven 使えるようになるところまでの設
Javaの開発をしている人は大概サーバサイドで何か作ってるんじゃないかと思いますが、このサーバサイドJavaを取り巻く環境は日々めまぐるしく進歩していて、ちょっと気を抜くとすぐに置いて行かれてしまいます。 特にサーバサイドJavaを取り巻く技術として「DI (Dependency Injection)」という単語は良く聞くと思いますが、正直僕はあまり突っ込んで使っていませんでした。DIの思想自体は理解しているつもりで、メリットも分かっているつもりではいましたが、「DIを積極的に導入した場合にどういうものが出来上がるのか」について、自分の中でもやもやとした状態が続いていたからです。 そのもやもやを晴らそうとドキュメントベースで知識は入れていたものの、DIコンテナの一つである Spring3 のマニュアルとか700ページ以上もあるんですよね。脳内のバッファがパンクしてしまいます。 習うより慣れ
Spring MVC 3.0/3.1/3.2の日本語の実用レベルのまとまった情報が少ないので、ドキュメントとして、クックブック的なレシピ集としてまとめたものとして公開します。 まだ、書きかけのところもありますが、Spring MVCの大体の機能は説明できていると思います。 基本的に、自分が使っている機能をまとめています。 Spring MVCに直接関係しないものも多々あります。書いていたら、いつの間にか増えてました(JAXBやRELAX NGとか)。 今後も主にこの方針で更新していきますが、ページ数が多くなった場合、分割するかもしれません。 目指すところ Webアプリケーションを作成するときに、フレームワークの選定する際の候補としてSpring MVCも入れてほしいので、その参考資料としても使えるようにする。また、目次をみれば、Spring MVCで何ができるのかできるだけわかるようにする
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く