javaconfig的實現
```
@Configuration
public class AppConfig {
@Bean
public UserDAO userDAO()
{
return new UserDAO();
}
@Bean
public UserService userService()
{
UserService userService = new UserService();
userService.setUserDAO(userDAO());
return userService;
}
}
```
java類的實現
```
public class UserService {
private UserDAO userDAO;
public void setUserDAO(UserDAO userDAO)
{
this.userDAO = userDAO;
}
public void test()
{
System.out.println(userDAO);
}
}
```
```
public class UserDAO {
}
```
測試類的實現
```
@Test
public void testIOC5()
{
//1. 啟動spring ioc的容器(BeanFactory, ApplicationContext)
//BeanFactory盡量晚的實例化對象,等到getBean()的時候再實例化。
//applicationContext:盡量早的實例化對象,啟動的時候,把單例的類都實例化好。非單例的類,等到第一次調用getBean實例化
ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
//2.
UserService userService = ctx.getBean(UserService.class);
UserService userService2 = ctx.getBean(UserService.class);
System.out.println(userService);
System.out.println(userService2);
//userService.test();
}
```