Spring配置注入
spring框架為我們提供了三種注入方式,分別是set注入,構造方法注入,介面注入。介面注入不作要求,下面介紹前兩種方式。
1,set注入
採用屬性的set方法進行初始化,就成為set注入。
1)給普通字元型別賦值。
- public class User{
- privateString username;
- publicString getUsername() {
- returnusername;
- }
- publicvoid setUsername(String username) {
- this.username= username;
- }
- }
我們只需要提供屬性的set方法,然後去屬性檔案中去配置好讓框架能夠找到applicationContext.xml檔案的beans標籤。標籤beans中新增bean標籤, 指定id,class值,id值不做要求,class值為物件所在的完整路徑。bean標籤再新增property 標籤,要求,name值與User類中對應的屬性名稱一致。value值就是我們要給User類中的username屬性賦的值。
- <bean id="userAction"class="com.lsz.spring.action.User" >
- <span style="white-space:pre;"> </span><property name="username" value="admin"></property>
- </bean>
2)給物件賦值
同樣提供物件的set方法
- public class User{
- private UserService userservice;
- public UserServicegetUserservice() {
- returnuser;
- }
- public void setUserservice(UserService userservice){
- this.userservice= userservice;
- }
- }
配置檔案中要增加UserService的bean標籤宣告及User物件對UserService引用。
- <!--物件的宣告-->
- <bean id="userService" class="com.lsz.spring.service.UserService"></bean>
- <bean id="userAction"class="com.lsz.spring.action.User" >
- <property name="userservice" ref="userService"></property>
- </bean>
這樣配置,框架就會將UserService物件注入到User類中。
3)給list集合賦值
同樣提供set方法
- public class User{
- privateList<String> username;
- publicList<String> getUsername() {
- returnusername;
- }
- publicvoid setUsername(List<String> username) {
- this.username= username;
- }
- }
- <bean id="userAction"class="com.lsz.spring.action.User" >
- <propertynamepropertyname="username">
- <list>
- <value>zhang,san</value>
- <value>lisi</value>
- <value>wangwu</value>
- </list>
- </property>
- </bean>
4)給屬性檔案中的欄位賦值
- public class User{
- privateProperties props ;
- publicProperties getProps() {
- returnprops;
- }
- publicvoid setProps(Properties props) {
- this.props= props;
- }
- }
- <bean>
- <propertynamepropertyname="props">
- <props>
- <propkeypropkey="url">jdbc:oracle:thin:@localhost:orl</prop>
- <propkeypropkey="driverName">oracle.jdbc.driver.OracleDriver</prop>
- <propkeypropkey="username">scott</prop>
- <propkeypropkey="password">tiger</prop>
- </props>
- </property>
- </bean>
<prop>標籤中的key值是.properties屬性檔案中的名稱
注意:
無論給什麼賦值,配置檔案中<property>標籤的name屬性值一定是和物件中名稱一致。
2構造方法注入
1)構造方法一個引數
- public class User{
- privateString usercode;
- publicUser(String usercode) {
- this.usercode=usercode;
- }
- }
- <bean id="userAction"class="com.lsz.spring.action.User">
- <constructor-argvalueconstructor-argvalue="admin"></constructor-arg>
- </bean>
2)建構函式有兩個引數時
當引數為非字串型別時,在配置檔案中需要制定型別,如果不指定型別一律按照字串型別賦值。
當引數型別不一致時,框架是按照字串的型別進行查詢的,因此需要在配置檔案中制定是引數的位置
- <constructor-argvalueconstructor-argvalue="admin"index="0"></constructor-arg>
- <constructor-argvalueconstructor-argvalue="23" type="int"index="1"></constructor-arg>
這樣制定,就是建構函式中,第一個引數為string型別,第二個引數為int型別
相關文章
- 【Spring Boot】yaml配置注入Spring BootYAML
- Spring注入:配置注入(set注入和構造器注入)與註解注入Spring
- Spring系列.依賴注入配置Spring依賴注入
- Spring框架(一):配置&注入&監聽器Spring框架
- Spring系列之新註解配置+Spring整合junit+註解注入Spring
- spring應用手冊-IOC(XML配置實現)-(26)-注入set集合SpringXML
- Spring-注入方式Spring
- spring泛型注入Spring泛型
- elasticsearch配置注入索引Elasticsearch索引
- Spring-註解注入Spring
- Spring @Autowired 注入小技巧Spring
- Spring 依賴注入 DISpring依賴注入
- Spring IOC——依賴注入Spring依賴注入
- spring 的依賴注入Spring依賴注入
- Spring 容器自動注入.Spring
- Spring set注入和構造注入的區別Spring
- Spring系列第八講 依賴注入之手動注入Spring依賴注入
- Spring.Net 依賴注入Spring依賴注入
- 關於Spring的bean注入SpringBean
- 大白話spring依賴注入Spring依賴注入
- Spring注入Bean的幾種方式SpringBean
- Spring的依賴注入的方式Spring依賴注入
- Spring學習(三)依賴注入Spring依賴注入
- spring框架學習 依賴注入Spring框架依賴注入
- 結合SpEL使用@Value-基於配置檔案或非配置的檔案的值注入-Spring BootSpring Boot
- Spring 原始碼分析之 bean 依賴注入原理(注入屬性)Spring原始碼Bean依賴注入
- Spring裝配Bean(七) Spring的執行時注入SpringBean
- 配置SpringSpring
- spring註解開發(一)Bean注入SpringBean
- spring注入bean的幾種策略模式SpringBean模式
- Spring原始碼解析——依賴注入(二)Spring原始碼依賴注入
- Spring中bean的四種注入方式SpringBean
- Spring 自動注入失敗異常Spring
- 2、spring注入及自動裝配Spring
- Spring 控制反轉和依賴注入Spring依賴注入
- 死磕Spring原始碼-依賴注入Spring原始碼依賴注入
- springboot yml 配置檔案注入Map,ListSpring Boot
- Spring Boot:Spring Boot配置MybatisSpring BootMyBatis