spring

SpringBoot覚書

BackBone.js本を買って写経をしようかと思いましてん。入門Backbone.js作者: James Sugrue出版社/メーカー: 翔泳社発売日: 2014/09/05メディア: Kindle版この商品を含むブログを見るで、その際サンプルとしてtwitterのクライアントを作るみたいなのがあり、…

4.7 Application contexts and Resource paths

4.7.1 Constructing application contexts ApplicationContextのコンストラクタは、普通はXMLファイルの在処を示すString(の配列)を引数としてもらう。指定したパスにprefixが指定されない場合は、ApplicationContextのクラスごとにどのResourceの実装クラ…

4.6 Resources as dependencies

Beanがリソースのパスを指定してリソースの取得を行う場合、おそらくResourceLoaderのインタフェースを使うだろう。ここで、あるテンプレートを読み込む例を考える。このテンプレートは、ユーザーのロールごとに異なるリソースが必要になるとしよう。もし静…

4.5 The ResourceLoaderAware interface

ResourceLoaderをインジェクションしてもらうためのマーカーインタフェースです。 public interface ResourceLoaderAware { void setResourceLoader(ResourceLoader resourceLoader); }ResourceLoaderAwareを実装した、SpringIoC配下にあるBeanにはResourcLo…

4.4 The ResourceLoader

リソースを取得する責務を表すインタフェースです。 public interface ResourceLoader { Resource getResource(String location); }ApplicationContextは全てResourceLoaderを実装する。そのため全てのアプリケーションコンテキストからResourceを取得できる…

4.3 Built-in Resource implemetations

4.3 Built-in Resource implemetations SpringにバンドルされているResourceの実装クラスについて。 4.3.1 UrlResource java.net.URLをラップしており、URLを介して取得できるファイルや、HTTPリソース、FTPリソースなどを取得するために用いる。URLは一般的…

4.2 The Resource interface

4.2 The Resource interface そこでSpringでは、java.net.URLよりもリソースを表現するよりよい抽象概念(abstraction)として、Resourceインタフェースを提供する。 public interface Resource extends InputStreamSource { //リソースが存在するかをチェック…

4.1 Introduction

Spring Resourceについての説明。4.1 Introduction java.net.URLと、URLのスキーマごとに対応する標準のハンドラクラスでは、リソースへの色々なアクセスの仕方を実現できない。例えばURLの標準実装では、クラスパスからのリソース検索や、サーブレットコン…

TransactonRollbackExceptionが納得行かない・・・

http://d.hatena.ne.jp/minokuba/20110501/1304265347の10.5.7.1 Requiredにある以下の記述が納得行かないんです。 PROPAGATION_REQUIREDの場合、内側のトランザクションがrollback-markを付与した場合はそれは外側のトランザクションに伝搬する。もし内側の…

P6SpyとSpringを組み合わせて使う

http://swik.net/Spring/Spring%27s+corner/Integrate+P6Spy+with+Spring/vq6にありましたが、一応備忘録。Springで既存のAPIとうまく折り合うコツみたいなのがわかる気がする。 #ああ、今さら今さら。

10.7 Choosing between programmatic and declarative transaction management〜10.10 Further Resources

もう面倒だからまとめちゃうよ。10.7 Choosing between programmatic and declarative transaction management 宣言的トランザクションとプログラムによるトランザクション。アプリの規模が大きくなったら宣言的にやらないと回らないよというだけの簡単なお…

トランザクションの設定に関する設計指針

ひとまず、開発実践がない状態なので妄想に過ぎませんがだらだらメモってみます。Spring Transactionの機能を用いると、トランザクションの設定をIoCコンテナの設定ファイル(XMLファイル)を用いて行うことができます。またアノテーションを用いて行うこと…

10.6 Programmatic transaction management

プログラムでトランザクション制御する方法についてのおはなし。EJBで言うところのBMTですね。方法としてはTransactionTemplateを用いるやり方と、PlatformTransactionManagerを直接用いるやり方がある。Springの中の人的にはTransactionTemplateがオススメ…

10.2 Advantages of the Spring Framework's transaction support model

10.2 Advantages of the Spring Framework's transaction support model 長い割に内容ないのでダレた。なので要約すると、 従来のグローバルトランザクションはJTAもしくCMT EJBを使わないとダメで、これはアプリケーションサーバ上でしか動かないデメリット…

10.1 Introduction to Spring Framework transaction management

10.1 Introduction to Spring Framework transaction management トランザクション管理機能はSpringを使う最も強い動機だ。SpringFrameworkは一貫したトランザクション管理の抽象化機能を提供する。この機能により得られるのは以下のとおり。 JTA、JDBC、Hib…

7.6 Proxying mechanisms

7.6 Proxying mechanismsSpringAOPでは、JDK DynamicProyとCGLIBのどちらかを選択できる。(JDK DynamicProxyが優先される。) もしJDK DynamicProxyを使う場合は、アスペクトの対象となるオブジェクトは最低でもひとつのインタフェースを実装する必要がある…

7.2 @AspectJ support

@AspectJアノテーションでアスペクトを定義するやり方について説明します。なお@AspectJスタイルは、そもそもAspectJ5で導入されたものです。SpringではAspectJで定義するアノテーションと連携します。AOPのランタイムはあくまでSpringのものであり、AspectJ…

7.1 Introduction

7.1.1 AOP concepts AOPの中心概念を説明する。 Aspectトランザクション管理など、関心ごとのモジュールのこと。「schema-based approach」(Javaでアスペクトを実装して設定ファイルに書く)か、「@AspectJスタイル」(Javaアスペクトを実装して@AspectJを…

3.14. The BeanFactory

3.14 The BeanFactory 基本的にBeanFactoryを直接使う必要はなくApplicationContextを使えばOK。以上。3.14.2 Glue code and the evil singleton 根性切れた。省略

3.13. Additional Capabilities of the ApplicationContext

概要 ApplicationContextは、BeanFactoryの機能に以下が追加されている MessageSource (リソースバンドル) ResourceLoader (URLやファイルリソース) ApplicationListener (イベント配信) HierarchicalBeanFactory (コンテナ間の連携?) 3.13.1 Inter…

3.12. Registering a LoadTimeWeaver

<beans> <context:load-time-weaver/> </beans> これを付けるとLoadTimeWeaverAwareをインジェクションできる。これはJPAなどロード時のウィービングを行う場合に役立つ。詳細は別で。

3.11. Java-based container configuration

3.11.1 Basic concepts: @Configuration and @Bean @Configurationをつけたクラスに、@Beanをつけたメソッドを定義するとbeanを定義できる。というのが中心概念。メソッド名がbean名になります。 3.11.2 Instantiating the Spring container using Annotatio…

3.10. Classpath scanning and managed components

3.10.1 @Component and further stereotype annotations ステレオタイプアノテーションについて。 @Component Springが管理するコンポーネントを表す。 @Controller MVCのコントローラ @Service サービス層 @Repository DBアクセス クラスアノテーションとし…

3.9. Annotation-based container configuration

概要 大まかにサポートするアノテーションは以下のとおり @Required @Autowired JSR-250(@Resources,@PostConstruct) JSR-330(@Inject,@Qualifier,@Named,@Provider) → CDIですね。 これらのアノテーションを使うためには、対応するBeanPostProcessorが登録…

3.6. Customizing the nature of a bean

3.6 Customizing the nature of a bean 3.6.1 Lifecycle callbacks Beanを生成・破棄するタイミングでコールバックしてくれる。これはBeanPostProcessor で実装しておりカスタマイズ可能。 3.6.1.1 Initialization callbacks,3.6.1.2 Destruction callbacks …

3.5. Bean scopes

3.5 Bean scopes Beanのスコープの定義はこうだ! ・singleton デフォルト。シングルトンです。ステートレスにしなさい。 ・prototype 毎回生成します。ステートフルにしなさい。 ・request HTTPリクエストのスコープです。Web層のアプリケーションコンテキ…

3.4. Dependencies

3.4 Dependencies bean間の依存関係の定義について。なんか書いてあったけど忘れたので省略。この節は長いな…。3.4.1 Dependency injection SpringのDIには、コンストラクタインジェクションと、セッターインジェクションがある。 3.4.1.1 Constructor-based…

3.3. Bean overview

3.3.1 Naming beansBeanの定義の基礎について。 すべてのbeanはひとつ以上の名前を定義できる。普通は名前はひとつだけど。複数のエイリアスをつけることもできる。 Bean名はid属性かname属性で定義する。idはXML elementのidなのでXMLで唯一でないといけな…

3.8. Container extension points

3.8 Container extension points コンテナの機能については、プラガブルに拡張できます。ここは後で見ようかと思うが、概要だけ。 3.8.1 Customizing beans using the BeanPostProcessor Interface ここはBeanのライフサイクルコールバック、依存解決ロック…

3.7. Bean definition inheritance

3.7 Bean definition inheritance <bean id="inheritsWithDifferentClass" class="org.springframework.beans.DerivedTestBean" parent="inheritedTestBean" init-method="initialize">こうやると、idがinheritedTestBeanのbean定義をプロパティ継承できる。プロパティは継承先で上書きもできる。なおdepends on, autowire mode, dependency check, singleton, scope, …</bean>