1.xml
在配置文件
bean.xml 中, bean 标签通过配置属性 init-method ,可以在执行该 bean 的时候,首先执行该属性配置的方法,配置属性 destroy-method ,可以在执行完 bean 的时候,执行它配置的方法 ( 代码中要显示调用 destroy 方法 ) 。bean.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="userDAOImpl" class="com.test.dao.impl.UserDAOImpl"></bean> <bean id="userService" class="com.test.service.UserService" init-method="init" destroy-method="destory"> <property name="userDAO"> <ref bean="userDAOImpl" /> </property> </bean> </beans>
UserService.java
package com.test.service;
import com.test.dao.UserDAO;
import com.test.model.User;
public class UserService {
private UserDAO userDAO;
public void add(User user) {
userDAO.save(user);
}
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public void init(){
System.out.println("init");
}
public void destory(){
System.out.println("destory");
}
}
2.annotation
UserDAOImpl.java
package com.test.dao.impl;
import org.springframework.stereotype.Component;
import com.test.dao.UserDAO;
import com.test.model.User;
@Component("userDAOImpl")
public class UserDAOImpl implements UserDAO {
public void save(User user) {
System.out.println("user saved!");
}
}
UserService.java
package com.test.service;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.test.dao.UserDAO;
import com.test.model.User;
@Component("userService")
public class UserService {
private UserDAO userDAO;
public void add(User user) {
userDAO.save(user);
}
public UserDAO getUserDAO() {
return userDAO;
}
@Resource(name="userDAOImpl")
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
@PostConstruct
public void init(){
System.out.println("init");
}
@PreDestroy
public void destory(){
System.out.println("destory");
}
}
公共junit测试类
UserServiceTest.java
package com.test.service;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.test.model.User;
public class UserServiceTest {
@Test
public void testAdd() throws Exception {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService) applicationContext.getBean("userService");
User u = new User();
u.setUsername("zhangsan");
u.setPassword("123");
service.add(u);
applicationContext.destroy();
}
}