javascript
Spring Annotation(@Autowire、@Qualifier)
xmlns(xml命名空間):其實(shí)就是指定該xml的格式,能夠用哪些標(biāo)簽。
需要添加xmlns:context="http://www.springframework.org/schema/context"
和xsi:schemaLocation中添加
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"
?
applicationContext.xml需要添加<context:annotation-config />,這會(huì)初始化4個(gè)用來(lái)處理一些注解的bean
?
1 package com.bxw.service; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.beans.factory.annotation.Qualifier; 5 6 import com.bxw.dao.UserDao; 7 import com.bxw.dao.impl.UserDaoImpl; 8 import com.bxw.po.User; 9 10 public class UserService { 11 private UserDao userDao = new UserDaoImpl(); 12 13 public void init() { 14 System.out.println("init..."); 15 } 16 17 public UserDao getUserDao() { 18 return userDao; 19 } 20 21 @Autowired 22 public void setUserDao(@Qualifier("userDao") UserDao userDao) { 23 this.userDao = userDao; 24 } 25 26 public void add(User u){ 27 this.userDao.save(u); 28 } 29 30 public void destroy() { 31 System.out.println("destroy..."); 32 } 33 34 } UserService.java@Autowire一般注解在set方法上,會(huì)采用bytype的方式注入(雖然它可以注解在各種方法甚至是成員變量上,但不常用)
采用bytype方式注入會(huì)發(fā)生一些問(wèn)題,例如如果配置了名字(id)不同但class相同的兩個(gè)bean,這個(gè)時(shí)候?qū)?huì)報(bào)錯(cuò),采用@Qualifier解決。
@Qualifier可以在bean中進(jìn)行配置,如果沒(méi)有配置的且指定了該bean的id,則id值即為qualifier的默認(rèn)值。(這也解釋了UserService.java中為什么是@Qualifier("userDao")).
posted on 2017-05-17 23:10 popcorn丫 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/popcornya/p/6870058.html
總結(jié)
以上是生活随笔為你收集整理的Spring Annotation(@Autowire、@Qualifier)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WPF Demo7
- 下一篇: JavaScript---详解cooki