基于:【狂神說Java】Spring5最新完整教程IDEA版通俗易懂
目錄
- 1 簡介
- 2 例子實體類
- 3 注入
-
- 3.1 基本資料類型+String
- 3.2 引用類型
- 3.3 數組類型
- 3.4 List清單
- 3.5 Map類型
- 3.6 Set集合
- 3.7 空值
- 3.8 properties類型
- 3.9 運作結果
- 4 p命名空間(property注入)
- 5 c命名空間(constructor注入)
- 6 bean的作用域
1 簡介
當使用bean建立對象的時候,可以使用構造器注入參數值、set方法注入參數值。還可以使用其他第三方注入。
依賴注入(Dependency Injection):采用set注入的方式;
- 依賴:bean對象的建立依賴于容器;
- 注入:bean對象的所有屬性,由容器來注入;
2 例子實體類
public class User {
private String name;
private Address address;
private String[] books;
private List<String> hobbies;
private Map<String,String> card;
private Set<String> games;
private String girlFriend;
private Properties info;
}
幾乎涵蓋了需要注入的各種類型。
3 注入
3.1 基本資料類型+String
3.2 引用類型
<bean id="beijing" class="xyz.cqulwj.pojo.Address">
<constructor-arg name="address" value="北京市"/>
</bean>
<property name="address" ref="beijing"/>
3.3 數組類型
<property name="books" >
<array>
<value>《三體》</value>
<value>《朝花夕拾》</value>
<value>《駱駝祥子》</value>
</array>
</property>
3.4 List清單
<property name="hobbies">
<list>
<value>抽煙</value>
<value>喝酒</value>
<value>燙頭</value>
</list>
</property>
3.5 Map類型
<property name="card">
<map>
<entry key="學生卡" value="152151"/>
<entry key="交通卡" value="51551"/>
</map>
</property>
3.6 Set集合
<property name="games">
<set>
<value>絕地求生</value>
<value>英雄聯盟</value>
</set>
</property>
3.7 空值
<property name="girlFriend">
<null/>
</property>
3.8 properties類型
<property name="info">
<props>
<prop key="處分">高中期間曾經由于外出上網被保安抓住處500元罰款</prop>
<prop key="獎勵">大學因教育室友不要外出上網獎勵500元現金</prop>
</props>
</property>
3.9 運作結果
User{
name='劉建國',
address=Address{address='北京市'},
books=[《三體》, 《朝花夕拾》, 《駱駝祥子》],
hobbies=[抽煙, 喝酒, 燙頭],
card={學生卡=152151, 交通卡=51551},
games=[絕地求生, 英雄聯盟],
girlFriend='null',
info={處分=高中期間曾經由于外出上網被保安抓住處500元罰款, 獎勵=大學因教育室友不要外出上網獎勵500元現金}
}
4 p命名空間(property注入)
在
beans.xml
中添加
p
命名空間:
xmlns:p="http://www.springframework.org/schema/p"
然後使用p命名空間對簡單的類型進行注入:
5 c命名空間(constructor注入)
添加命名空間:
xmlns:c="http://www.springframework.org/schema/c"
使用c命名空間注入:
由于采用的是構造器注入,是以必須要有這個參數的構造器
6 bean的作用域
當調用
getBean()
的時候。配置在bean中
scope="prototype"
;
- Singleton:記憶體中隻有一個bean對應類的對象,預設實作;
- prototype:原型,每一次get都會建立一個對象。
- request、session、application再web開發中使用。