這邊不使用自動載入
一般注入
1
2
3
4
5
6
7
|
@Configuration
public class ...{
@Bean
public UserDao userDaoNormal{
return new UserDaoNormal();
}
}
|
建構式注入
一般方法
1
2
3
4
5
6
7
8
|
@Configuration
public class ...{
@Bean
public UserService userServiceNormal(){
UserDao userDao = userDaoNormal();
return new UserService(userDao);
}
}
|
更好的方法(不多一個 instance )
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Configuration
public class ...{
@Bean
public UserDao userDaoNormal{
return new UserDaoNormal();
}
@Bean
public UserService userServiceNormal(userDao userDao){
return new UserService(userDao);
}
}
|
setter 注入方法
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Configuration
public class ...{
@Bean
public UserDao userDaoNormal{
return new UserDaoNormal();
}
@Bean
public UserService setUserDao(userDao userDao){
return new UserService(userDao);
}
}
|
任意方法也可以
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Configuration
public class ...{
@Bean
public UserDao userDaoNormal{
return new UserDaoNormal();
}
@Bean
public UserService prepareUserDao(userDao userDao){
return new UserService(userDao);
}
}
|
解決衝突方法
自動注入和 JavaConfig 解決方案一致
@Primary
Qualifier(“xxxXxxx”)
@Qualifier(“xxXxxx”) 宣告 or 參數
@Qualifier(“xxxXxxx”) 宣告
@Bean 命名方法
默認 @Bean 方法名稱