一、 @Scope、@PostConstruct、@PreDestroy
@Scope对应于xml配置文件的scope属性
@PostConstruct对应于xml配置文件中的init-method属性
@PreDestroy对于应于xml配置文件中的destroy-method属性
java代码:
- 例如如下:
- import javax.annotation.PostConstruct;
- import javax.annotation.PreDestroy;
- import javax.annotation.Resource;
- import org.springframework.context.annotation.Scope;
- import org.springframework.stereotype.Component;
- @Component(value="userService")
- @Scope("singleton")
- public class UserService {
- @PostConstruct
- public void init(){System.out.println("现在开始初始化UserService");}
- private UserDao userDao = new UserDaoImpl();
- public UserDao getUserDao() {return userDao;}
- @Resource
- public void setUserDao(UserDao userDao) {this.userDao = userDao;}
- public void add(User u){ userDao.save(u);}
- @PreDestroy
- public void destroy(){System.out.println("destory"); }
@PostConstruct是Java EE 5引入的注解,Spring允许开发者在受管Bean中使用它。当DI容器实例化当前受管Bean时,@PostConstruct注解的方法会被自动触发,从而完成一些初始化工作,示例代码如下。
- @PostConstruct
- public void postConstruct(){
- log.info("调用postConstruct");
- }
被@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法执行执行之后执行