Summary
Base on XML:
1)Get bean by bean ID in config xml
2)Get bean by bean Type in config xml
3)Get bean by bean ID & Type in config xml
4)Get bean by interface type in config xml
5)Autowire (by Type or by Name) in config xml
XML config file
<bean id="userOne" class="com.jamie.pojo.User"/>
<bean id="userTwo" class="com.jamie.pojo.User"/>
<bean id="clientOne" class="com.jamie.pojo.Client"/>
<bean id="userController" class="com.jamie.controller.UserController" autowire="byName">
<!-- <property name="userService" ref="userService"></property>-->
</bean>
<bean id="userService" class="com.jamie.service.impl.UserServiceImpl" autowire="byName">
<!-- <property name="userDao" ref="userDao"></property>-->
</bean>
<bean id="userService2" class="com.jamie.service.impl.UserServiceImpl" autowire="byName">
<!-- <property name="userDao" ref="userDao"></property>-->
</bean>
<bean id="userDao" class="com.jamie.dao.impl.UserDaoImpl"/>
myTest.java
//1)Get bean by bean ID in config xml
@Test
public void IOCbyXMLTest1(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-ioc.xml");
User user = (User) ioc.getBean("userOne");
System.out.println(user);
}
//2)Get bean by bean Type in config xml
@Test
public void IOCbyXMLTest2(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-ioc.xml");
Client cln = ioc.getBean(Client.class);
System.out.println(cln);
}
//3)Get bean by bean ID & Type in config xml
@Test
public void IOCbyXMLTest3(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-ioc.xml");
Client cln = ioc.getBean("clientOne",Client.class);
System.out.println(cln);
}
//4)Get bean by interface type in config xml
@Test
public void IOCbyXMLTest4(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-ioc.xml");
Person person = ioc.getBean(Person.class);
System.out.println(person);
}
//5)Autowire (by Type or by Name) in config xml
@Test
public void autowireTest(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-autowire-xml.xml");
UserController userController = ioc.getBean(UserController.class);
userController.saveUser();
}
Base on Annotation
6)Annotation for each class + scan in config xml
XML config file:
<context:component-scan base-package="com.jamie" />
Annotation:
@Controller
public class UserController {...
@Repository
public class UserDaoImpl implements UserDao {...
@Component
public interface UserDao {...
@Service
public class UserServiceImpl implements UserService {...
@Component
public interface UserService {
myTest.java
//6)Annotation + scan in config xml
@Test
public void IOCbyAnnotationTest1(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-annotation.xml");
UserController userController = ioc.getBean("userController",UserController.class);
System.out.println(userController);
UserService userService = ioc.getBean("userServiceImpl",UserService.class);
System.out.println(userService);
UserDao userDao = ioc.getBean("userDaoImpl",UserDao.class);
System.out.println(userDao);
}
7)Annotation: Autowried for each member variable
Annotation
public class UserController {
@Autowired
private UserService userService;
public void saveUser(){
userService.saveUser();
}
}
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public void saveUser() {
userDao.saveUser();
}
}
myTest.java
//7)Annotation: Autowried
@Test
public void IOCbyAnnotationTest2(){
ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-annotation.xml");
UserController userController = ioc.getBean("userController",UserController.class);
userController.saveUser();
}