抜粋:https://www.cnblogs.com/leton/p/11755192.html
春の基礎を学習
春の概要
分配フレームにおけるスプリングは、それが機能の6つのカテゴリに分けることができ、20個の異なるモジュールの合計を含んでいます。
春の全体的なチャート
Java開発の複雑さを軽減するために、春には、以下の4つの主要な戦略をとっています。
- POJOの軽量かつ低侵襲性のプログラミング。
- 依存性注入指向インターフェースと疎結合。
- 宣言型プログラミングに基づいて、セクションや実践。
- カットやテンプレートを経由して定型的なコードを削減します。
依存性注入DI
しばしばアセンブリ(配線)と呼ばれるアプリケーションオブジェクトの挙動との間の協力関係を作成し、これはまた、注入(DI)の性質に依存しています。
豆を組み立てる方法を説明すると、春には大きな柔軟性を持って、それが3つの本体のメカニズムを提供しています:
- 明示的にXMLで設定します。
- 明示的にJavaで設定します。
- 暗黙の豆発見メカニズムと自動アセンブリ。
自動組立豆
アセンブリを自動化するための2つの角度から春:
- コンポーネントスキャン(成分走査):春が自動的に作成されたアプリケーション・コンテキスト・ビーンを見つけます。
- 自動アセンブリ(オートワイヤリング):春は自動的にBeanの間の依存関係を満たします。
スキャンと自動組立部品を一緒に使用すると、最小限の明示的な設定にすることができる偉大な力を、再生することができます。
@Componentノートは、このクラスはコンポーネントクラスであることを示し、そしてクラスのために作成されるスプリングビーン通知
アノテーションコンポーネントスキャンを有効@ComponentScan
自動組立のため@Autowiredメモを
Javaコードアセンブリ豆
@Bean注釈は、このメソッドを使用すると、SpringアプリケーションコンテキストのBeanに登録したいオブジェクトを返す春を告げます。
XML Beanを組み立てることにより、
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="knight" class="com.fiberhome.tongl.knight.BraveKnight"> <constructor-arg ref="quest" /> </bean> <bean id="quest" class="com.fiberhome.tongl.knight.SlayDragonQuest"> <constructor-arg value="#{T(System).out}" /> </bean> </beans>
あなたがXMLでDIを宣言すると、オプションのコンフィギュレーション手法とスタイルの様々ながあるでしょう。コンストラクタ・インジェクション特有の、利用可能な2つの基本的な設定オプションがあります。
- 要素
- 導入を使用してC-春3.0名前空間
プロパティを注入し、利用可能な2つの基本的な設定オプションがあります。
- 要素
- P-名前空間
Spring構成は、要約の3種類を使用しています
可能な限り自動設定メカニズムを使用してください。明示的に明示的にメンテナンスコストによって引き起こされるように構成避けるために、できるだけ構成されました。あなたが明示的に(例えば、ソースコードの一部を維持するためにあなた次第ではない、とあなたは、コード時間にBeanを構成する必要がある場合)Beanを構成する必要がある場合には、優先順位は、Javaの設定に基づいて選択する必要があり、それはXMLベースの設定を超えています復興の、強力で安全で簡単なタイプ。あなたが唯一のXML名前空間の利便性を利用したい、とJavaConfigで同じことを達成していない場合最後に、あなたはXMLを使用する必要があります。
豆の範囲
スプリングには、スコープの様々なこれらのBeanのスコープに基づいて作成することができる定義されています。
- シングルトン(シングルトン):出願を通して、専用Beanのインスタンスを作成します。
- プロトタイプ(原型):各注射またはSpringアプリケーションのコンテキストで取得された場合、新しいBeanインスタンスを作成します。
- セッション(セッション):Webアプリケーションでは、セッションごとにBeanインスタンスを作成します。
- リクエスト(Rquest):Webアプリケーションでは、要求ごとにBeanインスタンスを作成します。
シングルトンスコープは、変数の型のため、これは適切ではない、先に説明したように、デフォルトであるが、。あなたは@Scopeノートを使用して、異なる範囲を選択した場合、それは@Componentまたは@Beanで使用することができます。
外部値を注入します
春には、最も簡単な方法は、外部ソース処理属性値を宣言すると属性春の環境を取得することです。
@PropertySource参照クラスパスの.propertiesファイル。
@valueプレースホルダプロパティ(設定PropertySourcesPlaceholderConfigurer豆)
アスペクト指向プログラミング(アスペクト指向プログラミング、AOP)
DIは、アプリケーションオブジェクト間のデカップリングに貢献し、ポイントと、彼らが影響を与えるオブジェクト間のデカップリングAOPの横断の懸念を達成することができます。
カットポイント式
セクションを作成した注釈を使用します
@AspectJアノテーション溶液クラスがちょうどPOJO、またはセクションではないことを示しました。
自動プロキシ機能を有効にするコメント@EnableAspectJAutoProxy
AspectJの通知を定義するために5つの注釈を提供します
- @After通知方法は、返しまたはターゲットメソッド呼び出しに例外をスローした後
- @AfterReturning通知方法は、ターゲットメソッドの復帰後に呼び出されます
- 通知方法の後@AfterThrowingは、ターゲット・メソッドの呼び出しで例外がスローされます
- @Around通知方法は、ターゲットメソッドをカプセル化します
- @Before通知方法は、対象のメソッド呼び出しの前に実行されます
参照
- 「春の戦闘(第4版)」
春の概要
分配フレームにおけるスプリングは、それが機能の6つのカテゴリに分けることができ、20個の異なるモジュールの合計を含んでいます。
春の全体的なチャート
Java開発の複雑さを軽減するために、春には、以下の4つの主要な戦略をとっています。
- POJOの軽量かつ低侵襲性のプログラミング。
- 依存性注入指向インターフェースと疎結合。
- 宣言型プログラミングに基づいて、セクションや実践。
- カットやテンプレートを経由して定型的なコードを削減します。
依存性注入DI
しばしばアセンブリ(配線)と呼ばれるアプリケーションオブジェクトの挙動との間の協力関係を作成し、これはまた、注入(DI)の性質に依存しています。
豆を組み立てる方法を説明すると、春には大きな柔軟性を持って、それが3つの本体のメカニズムを提供しています:
- 明示的にXMLで設定します。
- 明示的にJavaで設定します。
- 暗黙の豆発見メカニズムと自動アセンブリ。
自動組立豆
アセンブリを自動化するための2つの角度から春:
- コンポーネントスキャン(成分走査):春が自動的に作成されたアプリケーション・コンテキスト・ビーンを見つけます。
- 自動アセンブリ(オートワイヤリング):春は自動的にBeanの間の依存関係を満たします。
スキャンと自動組立部品を一緒に使用すると、最小限の明示的な設定にすることができる偉大な力を、再生することができます。
@Componentノートは、このクラスはコンポーネントクラスであることを示し、そしてクラスのために作成されるスプリングビーン通知
アノテーションコンポーネントスキャンを有効@ComponentScan
自動組立のため@Autowiredメモを
Javaコードアセンブリ豆
@Bean注釈は、このメソッドを使用すると、SpringアプリケーションコンテキストのBeanに登録したいオブジェクトを返す春を告げます。
XML Beanを組み立てることにより、
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="knight" class="com.fiberhome.tongl.knight.BraveKnight"> <constructor-arg ref="quest" /> </bean> <bean id="quest" class="com.fiberhome.tongl.knight.SlayDragonQuest"> <constructor-arg value="#{T(System).out}" /> </bean> </beans>
あなたがXMLでDIを宣言すると、オプションのコンフィギュレーション手法とスタイルの様々ながあるでしょう。コンストラクタ・インジェクション特有の、利用可能な2つの基本的な設定オプションがあります。
- 要素
- 導入を使用してC-春3.0名前空間
プロパティを注入し、利用可能な2つの基本的な設定オプションがあります。
- 要素
- P-名前空間
Spring構成は、要約の3種類を使用しています
可能な限り自動設定メカニズムを使用してください。明示的に明示的にメンテナンスコストによって引き起こされるように構成避けるために、できるだけ構成されました。あなたが明示的に(例えば、ソースコードの一部を維持するためにあなた次第ではない、とあなたは、コード時間にBeanを構成する必要がある場合)Beanを構成する必要がある場合には、優先順位は、Javaの設定に基づいて選択する必要があり、それはXMLベースの設定を超えています復興の、強力で安全で簡単なタイプ。あなたが唯一のXML名前空間の利便性を利用したい、とJavaConfigで同じことを達成していない場合最後に、あなたはXMLを使用する必要があります。
豆の範囲
スプリングには、スコープの様々なこれらのBeanのスコープに基づいて作成することができる定義されています。
- シングルトン(シングルトン):出願を通して、専用Beanのインスタンスを作成します。
- プロトタイプ(原型):各注射またはSpringアプリケーションのコンテキストで取得された場合、新しいBeanインスタンスを作成します。
- セッション(セッション):Webアプリケーションでは、セッションごとにBeanインスタンスを作成します。
- リクエスト(Rquest):Webアプリケーションでは、要求ごとにBeanインスタンスを作成します。
シングルトンスコープは、変数の型のため、これは適切ではない、先に説明したように、デフォルトであるが、。あなたは@Scopeノートを使用して、異なる範囲を選択した場合、それは@Componentまたは@Beanで使用することができます。
外部値を注入します
春には、最も簡単な方法は、外部ソース処理属性値を宣言すると属性春の環境を取得することです。
@PropertySource参照クラスパスの.propertiesファイル。
@valueプレースホルダプロパティ(設定PropertySourcesPlaceholderConfigurer豆)
アスペクト指向プログラミング(アスペクト指向プログラミング、AOP)
DIは、アプリケーションオブジェクト間のデカップリングに貢献し、ポイントと、彼らが影響を与えるオブジェクト間のデカップリングAOPの横断の懸念を達成することができます。
カットポイント式
セクションを作成した注釈を使用します
@AspectJアノテーション溶液クラスがちょうどPOJO、またはセクションではないことを示しました。
自動プロキシ機能を有効にするコメント@EnableAspectJAutoProxy
AspectJの通知を定義するために5つの注釈を提供します
- @After通知方法は、返しまたはターゲットメソッド呼び出しに例外をスローした後
- @AfterReturning通知方法は、ターゲットメソッドの復帰後に呼び出されます
- 通知方法の後@AfterThrowingは、ターゲット・メソッドの呼び出しで例外がスローされます
- @Around通知方法は、ターゲットメソッドをカプセル化します
- @Before通知方法は、対象のメソッド呼び出しの前に実行されます
参照
- 「春の戦闘(第4版)」