次のようにディレクトリ構造は次のとおりです。
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" >
自動コンテナ組立誤差は、推奨されません