• 3.IOC的配置与应用(annotation的方式)


    自动装载

      @Autowired

        

     1 public class UserService {
     2         
     3     private UserDAO userDAO;
     4     public UserDAO getUserDAO() {
     5         return userDAO;
     6     }
     7     
     8     // 默认按照 bean 的类型注入  (by type)
     9     // 如果想用 byName 使用 @Qulifier
    10     // 注解最好放到 set方法上,不要放到字段上(第三种注入形式),会破坏封装性,类似 hibernate
    11     @Autowired
    12     public void setUserDAO(@Qualifier("u") UserDAO userDAO) {
    13         this.userDAO = userDAO;
    14     }
    15 
    16     public void add(User user) {
    17         userDAO.save(user);
    18     }
    19 }

      @Resource(重要) 

     1 public class UserService {
     2         
     3     private UserDAO userDAO;
     4     public UserDAO getUserDAO() {
     5         return userDAO;
     6     }
     7 
     8     /* 默认按名称,名称找不到,按类型( 如果@Resource中没有指定名称,那么默认使用userDAO)
     9      * 当不存在 对应名称的 bean对象时,则按 类型 再找一遍,满足UserDAO.class 就算符合
    10      * 加上name 属性 代表 按名称去找(一般都加上 name)
    11      * 推荐使用
    12      * annotation不足:如果没有源码,就无法运用annotation,只能使用xml
    13      * */
    14     @Resource(name="userDAO")
    15     public void setUserDAO(UserDAO userDAO) {
    16         this.userDAO = userDAO;
    17     }
    18 
    19     public void add(User user) {
    20         userDAO.save(user);
    21     }
    22 }

       

      @Component @Service @Controller @Repository(取代 bean 标签,上面用于取代 property标签)

        初始化的名字默认为类名首字母小写

        可以指定初始化bean的名字

      

      

      @Scope  

      /*@Scope 用来指定 bean 的 作用范围,就是之前 xml文件中 scope 属性的作用
      * 默认 为 单例 ,singleton 可以指定为prototype
      * */
      @Scope("singleton")

      

      

      @PostConstruct = init-method; @PreDestroy = destroy-method

     1 /*相当于 xml 中 的 init-method*/
     2     @PostConstruct
     3     public void postConstruct() {
     4         System.out.println("init!!");
     5     }
     6     
     7     /*相当于 xml 中 的 destroy-method*/
     8     @PreDestroy
     9     public void preDestroy() {
    10         System.out.println("destroy!!");
    11     }

     

      

      

  • 相关阅读:
    Hive 2.1.1安装配置
    vi / vim 删除以及其它命令
    『MySQL』时间戳转换
    update 中实现子查询
    hive lateral view 与 explode详解
    xpath定位方法详解
    Python int与string之间的转化
    ORM、SQLAchemy
    python bottle 简介
    python wsgi 简介
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7396676.html
Copyright © 2020-2023  润新知