Spring入門配置和DL依賴注入實(shí)現(xiàn)圖解
1、Spring入門配置
1.1、起別名
給項(xiàng)目起別名
!
1.2、import
導(dǎo)入其他xml
1.3、Bean的配置最重要的,又很多配置,我們先學(xué)一點(diǎn)
2、依賴注入(DL)
很重要
2.1、set注入
三種方式:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="student" class="bing.pojo.Student"> <!-- Set注入--> <property name="name" value="小冰"/> <!-- 引用注入,address--> <property name="address" ref="address"/> <!-- 數(shù)組注入--> <property name="advantages"> <array> <value>帥</value> <value>情商高</value> <value>智慧</value> <value>沉穩(wěn)</value> <value>有錢</value> </array> </property> <!-- set--> <property name="course"> <set> <value>賺錢</value> <value>情商</value> <value>心理學(xué)</value> <value>經(jīng)濟(jì)學(xué)</value> <value>哲學(xué)</value> <value>英語</value> <value>數(shù)學(xué)</value> <value>計(jì)算機(jī)</value> </set> </property> <!-- map注入--> <property name="grades"> <map> <entry key="java" value="10000"/> <entry key="math" value="200"/> <entry key="English" value="300"/> <entry key="psychology" value="400"/> </map> </property> </bean> <bean id="address" class="bing.pojo.Address"> <property name="address" value="大亳州"/> </bean> </beans>
記住這些類型的注入就行了
2.2、構(gòu)造器注入
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="user" class="bing.User"> <!-- 第一種方式:通過index獲取--> <constructor-arg index="0" value="bingbing"/> </bean> <bean id="student" class="bing.Student"> <!-- 方式二:通過key value--> <constructor-arg name="gender" value="小仙女"></constructor-arg> <constructor-arg name="age" value="19"/> </bean> <bean id="student2" class="bing.Student"> <!-- 方式三:通過 類型獲取,不推薦可能會(huì)出現(xiàn)歧義比如兩個(gè)String--> <!-- 這里以及上面為什么使用全類名? 肯定用到了反射--> <constructor-arg type="java.lang.String" value="女"/> <constructor-arg type="int" value="18"/> </bean> <bean id="teacher" class="bing.Teacher"> <!-- 我們來試一下兩個(gè)String類型會(huì)發(fā)生什么情況--> <constructor-arg type="java.lang.String" value="girl"/> <constructor-arg type="java.lang.String" value="劉老師"/> </bean> <!-- 相當(dāng)于new對(duì)象,對(duì)象名為person,只有這一個(gè)對(duì)象--> <bean id="person" class="bing.Person"> </bean> </beans>
注意:我們一般選用 key value注入,見名知意
2.3、拓展注入
為了簡(jiǎn)化我們可以引入p/c命名空間
使用方式:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- p,命名空間,p本質(zhì)上是什么? 就是properties,可以給簡(jiǎn)單的屬性命名,目的是為了簡(jiǎn)化--> <bean id="user" class="bing.pojo.User" p:name="zhangsan" p:age="18"> </bean> <!-- c命名空間,怎么用? 是給constructor 構(gòu)造器初始化的,這里就要求必須要有有參構(gòu)造--> <bean id="user2" class="bing.pojo.User" c:name="bingbing" c:age="19" p:age="20"/> </beans>
注意點(diǎn):
使用前要導(dǎo)入:
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
類比:
p相當(dāng)于標(biāo)簽:properties 其實(shí)就是set注入,不過可以簡(jiǎn)化簡(jiǎn)單的操作
c詳單與 :constructor:就是用來給有參構(gòu)造器初始化的
2.4、bean標(biāo)簽作用域
bean是什么?就是一個(gè)對(duì)象,也就是類的實(shí)例
我們可以給他設(shè)置單例模式等等
單例模式
<bean id="accountService" class="com.something.DefaultAccountService"/>
<!-- the following is equivalent, though redundant (singleton scope is the default) -->
<bean id="accountService" class="com.something.DefaultAccountService" scope="singleton"/>
原型模式
<bean id="accountService" class="com.something.DefaultAccountService" scope="prototype"/>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud的@RefreshScope 注解你了解嗎
這篇文章主要介紹了Spring Cloud @RefreshScope 原理及使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-09-09Spring注解@Resource和@Autowired區(qū)別對(duì)比詳解
這篇文章主要介紹了Spring注解@Resource和@Autowired區(qū)別對(duì)比詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09spring boot 利用注解實(shí)現(xiàn)權(quán)限驗(yàn)證的實(shí)現(xiàn)代碼
這篇文章主要介紹了spring boot 利用注解實(shí)現(xiàn)權(quán)限驗(yàn)證的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Java創(chuàng)建多線程局域網(wǎng)聊天室實(shí)例
這篇文章主要介紹了Java創(chuàng)建多線程局域網(wǎng)聊天室實(shí)例,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07在IDEA中創(chuàng)建SpringBoot項(xiàng)目的詳細(xì)步驟
這篇文章主要給大家介紹了在IDEA中創(chuàng)建SpringBoot項(xiàng)目的詳細(xì)步驟,文中有詳細(xì)的圖文介紹和代碼示例,對(duì)大家的學(xué)習(xí)和工作有一定的幫助,需要的朋友可以參考下2023-09-09