3.IOC的配置與應用(annotation的方式)
阿新 • • 發佈:2017-08-19
prot epo println 字母 set return 方法 public 重要
自動裝載
[email protected]
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方法上,不要放到字段上(第三種註入形式),會破壞封裝性,類似 hibernate11 @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 }
[email protected](重要)
1 public class UserService { 2 3 privateUserDAO userDAO; 4 public UserDAO getUserDAO() { 5 return userDAO; 6 } 7 8 /* 默認按名稱,名稱找不到,按類型( [email protected],那麽默認使用userDAO) 9 * 當不存在 對應名稱的 bean對象時,則按 類型 再找一遍,滿足UserDAO.class 就算符合 10 * 加上name 屬性 代表 按名稱去找(一般都加上 name) 11 * 推薦使用 12 * annotation不足:如果沒有源碼,就無法運用annotation,只能使用xml13 * */ 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 }
[email protected] @Service @Controller @Repository(取代 bean 標簽,上面用於取代 property標簽)
初始化的名字默認為類名首字母小寫
可以指定初始化bean的名字
[email protected]
[email protected] 用來指定 bean 的 作用範圍,就是之前 xml文件中 scope 屬性的作用
* 默認 為 單例 ,singleton 可以指定為prototype
* */
[email protected]("singleton")
[email protected] = 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 }
3.IOC的配置與應用(annotation的方式)