Spring JSR-250 注解

Spring还使用基于 JSR-250 注释,它包括 @PostConstruct, @PreDestroy 和 @Resource 注释

Spring @PostConstruct 和 @PreDestroy 注解

它们是bean生命周期的一个钩子, 也就是我们可以利用这两个来监听bean的过程

public class Test
{

  @PostConstruct
  public void init(){
     System.out.println("Bean init ...");
  }
  @PreDestroy
  public void destroy(){
     System.out.println("Bean destroy ...");
  }

}

Spring @Resource 注解

@Resource 也是用于bean的装配,它是通过 byName 来装配的!用法和 @Autowired 类似

  • @Resource 可注解在成员变量上

    @RestController
    public class HelloController {
      @Resource
    	private User mUser;
    }
    
  • @Resource 可注解在方法上

    @RestController
    public class HelloController {
    	private User mUser;
    	@Resource
    	public void setUser(User user)
    	{
    		this.mUser = user;
    	}
    }
    
  • @Resource 可注解在构造函数上

    @RestController
    public class HelloController {
    	private User mUser;
    	@Resource
    	public HelloController(User user)
    	{
    		this.mUser = user;
    	}
    }
    

    如果bean在容器中有多个,可直接指定名称

    @RestController
    public class HelloController {
    
      @Resource(name="user1")
    	private User mUser;
    	public HelloController(User user)
    	{
    		this.mUser = user;
    	}
    }