Javaの春とオートワイヤリングの範囲

次のようにディレクトリ構造は次のとおりです。

UserDao.java

1  パッケージcn.sxt.dao。
2  
3  パブリック インターフェイスUserDao {
 4      公共 ボイドは(追加)。
5 }
コードの表示

UserDaoImpl.java

1  パッケージcn.sxt.dao.impl。
2  
3  インポートcn.sxt.dao.UserDao。
4  
5  パブリック クラス UserDaoImplが実装UserDao {
 6      @Override
 7      公共 ボイド追加(){
 8          のSystem.out.println( "ユーザの追加"を)。
9      }
 10 }
コードの表示

UserDaoOracleImpl.java

1  パッケージcn.sxt.dao.impl。
2  
3  インポートcn.sxt.dao.UserDao。
4  
5  パブリック クラス UserDaoOracleImplが実装UserDao {
 6      @Override
 7      公共 ボイド追加(){
 8          のSystem.out.println( "ユーザの追加"を)。
9      }
 10 }
コードの表示

UserService.java

パッケージcn.sxt.service。

パブリック インターフェースUserServiceの{
     公共 ボイドは(追加)。
}
コードの表示

UserServiceImpl.java

1  パッケージcn.sxt.service.impl。
2  
3  インポートcn.sxt.dao.UserDao。
4  インポートcn.sxt.service.UserService。
5  
6  パブリック クラス UserServiceImplが実装UserServiceの{
 7      プライベートUserDao userDaoと、
8      公共 ボイドsetUserDao(UserDao userDao){
 9          この .userDao = userDao。
10      }
 11      @Override
 12      公共 ボイド追加(){
 13          userDao.add()。
14      }
15 }
コードの表示

beans.xmlの

1の<?xml version = "1.0"エンコード= "UTF-8"?>
 2 <豆のxmlns = "http://www.springframework.org/schema/beans"
 3つ      のxmlns:XSI = "のhttp:// WWW。 w3.org/2001/XMLSchema-instance」
 4      のxsi:schemaLocationの= "http://www.springframework.org/schema/beans
 5          のhttp:// www.springframework.org/schema/beans/spring-beans.xsd" > 
6    
7    <ビーンID = "userDao" クラス = "cn.sxt.dao.impl.UserDaoImpl"> </ビーン>
 8    <ビーンID = "UserServiceの" クラス = "cn.sxt.service.impl.UserServiceImpl">
 9        <
プロパティ名= "userDao" REF = "userDao"> </ property>の10    </豆>
11 </豆>
コードの表示

SpringTest.java

1  パッケージcn.sxt.spring。
2  
3  インポートorg.junit.Test。
4  インポートorg.springframework.context.ApplicationContext。
5  輸入org.springframework.context.support.ClassPathXmlApplicationContext。
6  
7  インポートcn.sxt.service.UserService。
8  
9  パブリック クラスSpringTest {
 10      @Test
 11      公共 ボイドtestHello(){
 12          // 13          のApplicationContext AC = 新しい ClassPathXmlApplicationContext( "beans.xmlの" )。

14          UserServiceのがU1 =(UserServiceの)ac.getBean( "UserServiceの" )。
15          u1.add()。
16      }
 17 }
コードの表示

 

範囲:ドメインは、春にコンテナによってオブジェクトを作成するときに異なる値の容器意志スコープは、オブジェクト指定されたドメインを作成するために、その範囲で指定することができます。

  シングルトン:シングルトン(デフォルト)、そのタイプのコンテナに1つのオブジェクトのみ。

  プロトタイプ:プロトタイプは、オブジェクトに、からコンテナオブジェクトを再作成する必要があり、それぞれの時間を取得します。アクションは、プロトタイプに設定する必要があります。

  要求:オブジェクトの作成、オブジェクトは要求スコープに格納されています。

  セッション:オブジェクトを作成し、セッションの対象と範囲と一致しています。

  アプリケーション:中のServletContextに格納されているオブジェクトを作成します。

二つのオートワイヤリング:. Autowire

1.なし:デフォルトでは、自動化されたアセンブリを使用しません。

2. BYNAME:BYNAMEセット、そのオブジェクトが作成され、それはオブジェクト識別子に対応するオブジェクトのメソッドが存在するか否かに応じて設定コンテナになりますが、オブジェクトが存在する場合、存在しているが注入されます。

プロフィール:beans.xmlの

<ビーンID = "userDao" クラス = "cn.sxt.dao.impl.UserDaoImpl"> </ビーン> 
  <ビーンID = "UserServiceの" クラス = "cn.sxt.service.impl.UserServiceImpl" autowire = "BYNAME" > 
  </豆>

UserServiceImpl.javaファイル

パッケージcn.sxt.service.impl。

輸入cn.sxt.dao.UserDao;
輸入cn.sxt.service.UserService; 

パブリック クラス UserServiceImplは実装UserServiceの{
     プライベートUserDao userDaoを公共 ボイドsetUserDao(UserDao userDao){
         この .userDao = userDao。
    } 
    @Override 
    公共 ボイド追加(){ 
        userDao.add()。
    } 
}

3. byTypeは:,オブジェクトが直接注入の種類を見つけることである場合、容器内のオブジェクトの種類を設定したパラメータに応じて、いかなる注射を見つけることができないオブジェクトの作成方法を探し。

注意:使用byType注入を、コンテナ内の同じタイプの構成を持つことができます

4.コンストラクタ:本質的に単にむしろセット法よりも、注入にオブジェクトを構築することによって、注射をbyType。

ヘッダは、グローバルオートワイヤリングタイプを設定することができます。

<豆のxmlns = "http://www.springframework.org/schema/beans" 
    のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
    のxsi:schemaLocationの = "のhttp:// WWW .springframework.org /スキーマ/豆
        のhttp:// www.springframework.org/schema/beans/spring-beans.xsd」デフォルト-autowire = "BYNAME" >

自動コンテナ組立誤差は、推奨されません

 

おすすめ

転載: www.cnblogs.com/Vincent-yuan/p/11248025.html