以下圖中UseService文件依賴Userdao對象,能夠經過setUserDao11函數設置注入
web
配置文件使用property標籤配置注入內容
注意:配置文件中name參數的值取至set方法後跟的內容同時首字母小寫
例如:set方法名是setUserDao111,那麼name的值就是userDao111。
面試
有參構造函數注入使用constructor-arg標籤name是要注入的構造函數的參數名
算法
若是注入的內容是引用類型,就使用‘ref=’給對象賦值,且對象的值必須是在配置文件中註冊過的的對象id,如本文中的userServiceId和userDaoId,若是注入內容是普通數據類型,就使用‘value=’賦值,賦的值能夠是任意值,無需提早註冊。spring
使用註解方法時不須要在配置文件中添加各個要注入的內容,而是在配置文件中配置組件掃描便可,源文件也不在須要定義set方法,構造方法。數據庫
在配置文件中添加以下語句,便可讓spring掃描com.syx.dao包下的全部註解,不然spring沒法識別你註解的內容設計模式
<context:component-scan base-package="com.syx.dao"></context:component-scan>
具體註解方法以下:緩存
// 使用Component添加id爲userServiceId的註解至關於配置文件執行了 // <bean id="userServiceId" class="com.syx.dao.service.UserService"/> @Component("userServiceId") public class UserService { // Autowired和Qualifier組合做用是按照名稱進行注入,使用至關於 // <constructor-arg name="userdaoparam" ref="userDaoId"></constructor-arg> @Autowired @Qualifier("userDaoId") private UserDao userdaoparam; // Value是按照值進行注入,至關於 // <property name="test_a" value="13"></property> // 註解中的值能夠是${...}表達式 @Value("13") private int test_a; public void test() { System.out.println("注入值是" + test_a); userdaoparam.test(); } }
<bean id="userServiceId" class="com.syx.dao.service.UserService"> <property name="userDao11" ref="userDaoId"></property> <!-- test_a 是int類型數據注入值100 --> <property name="test_a" value="100"></property> <!-- strList是List<String>集合,使用以下方法給集合添加兩個成員aaa和bbb --> <property name="strList"> <list> <value>aaa</value> <value>bbb</value> <!-- 若是集合List存儲的是引用類型數據 需改用ref標籤賦值,以下 <ref bean="userDaoId"></ref> --> </list> </property> <!-- userMap是Map<String, String>類型數據 --> <property name="userMap"> <map> <entry key="adc" value="def"></entry> <!-- 若是Map的鍵值對均爲引用類型,那麼要使用以下標籤進行注入 <entry key-ref="adc" value-ref="def"></entry> --> </map> </property> <!-- properties是一個Properties類型數據 --> <property name="properties"> <props> <prop key="adc">123456</prop > <prop key="adc">fkgj</prop > </props> </property> </bean>
@Qualifier結合@Autowired按名稱給字段注入
@Resource(name = 「bean_id」)至關於@Qualifier和@Autowired(「bean_id」)配合使用數據結構
歡迎關注公衆號:前程有光,領取一線大廠Java面試題總結+各知識點學習思惟導+一份300頁pdf文檔的Java核心知識點總結! 這些資料的內容都是面試時面試官必問的知識點,篇章包括了不少知識點,其中包括了有基礎知識、Java集合、JVM、多線程併發、spring原理、微服務、Netty 與RPC 、Kafka、日記、設計模式、Java算法、數據庫、Zookeeper、分佈式緩存、數據結構等等。多線程