Spring 学习——Spring JSR注解——@Resoure、@PostConstruct、@PreDestroy、@Inject、@Named

JSR

  • 定义:JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。
  • 扩展:属于JSR的jar包存在于javax包下。

Spring对JRS-250的支持注解

  • @Resoure
    • @Resoure(name="    ")相当于@Autowired和@Qualifier(value="     "),起作用是将已经装配的bean注入到类的属性中或者setter方法中。
      @Service
      public class JsrService {
      
          @Resource
      //    @Autowired
      //    @Qualifier(value = "jsrDao")
          private JsrDao jsrDao;
      
      //    @Resource
      //    public void setJsrDao(JsrDao jsrDao) {
      //        this.jsrDao = jsrDao;
      //    }
      
          public void save(){
              jsrDao.save();
              System.out.println("JsrService.save== I am success");
          }
      }
    • Next
  • @PostConstruct和@PreDestroy
    • 初始化回调和销毁回调方法
      @Service
      public class JsrService {
      
          @Resource
          private JsrDao jsrDao;
      
          public void save(){
              jsrDao.save();
              System.out.println("JsrService.save== I am success");
          }
      
          @PostConstruct
          public void init(){
              System.out.println("JsrService.init== I am init");
          }
      
          @PreDestroy
          public void destroy(){
              System.out.println("JsrService.init== I am destroy");
          }
      }
    • Next

Spring对JRS-330的支持注解

  • 使用方式:引入javax.inject包
    <dependencies>
            <dependency>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
                <version>1</cersion>
            </dependency>
        </dependencies>
  • @Inject
    • 作用:和@Autowired作用类似,自动注入。可以使用于类、属性、方法、构造器
      @Service
      public class JsrService {
          @Inject
          private JsrDao jsrDao;
      }
  • @Named
    • 作用:和@Component、@Qualifier作用类似。可以使用于类、方法
      @Named(value="  ")
      public class JsrService {
          @Inject
          private JsrDao jsrDao;
      
      }
      @Named(value="  ")
      public class JsrService {
      
          @Inject
      @Named(value=" ")
      private JsrDao jsrDao; }
    • Next
posted @ 2018-12-25 18:42  话·醉月  阅读(989)  评论(0编辑  收藏  举报