程式狂想筆記

一個攻城師奮鬥史

0%

JavaConfig 設定 bean 物件

這邊不使用自動載入

一般注入

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 方法名稱