最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Spring不同類型的注入方式 p-namespace,c-namespace

 更新時(shí)間:2021年09月26日 10:37:22   作者:coder鵬鵬  
這篇文章主要介紹了Spring不同類型的注入方式 p-namespace,c-namespace。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Spring不同類型的注入方式

spring官網(wǎng)代碼示例

1、不同類型的注入方式

<?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="address" class="com.hu.pojo.Address">
        <property name="address" value="lalala"/>
    </bean>
    <bean id="student" class="com.hu.pojo.Student">
        <!--注入value-->
        <property name="name" value="pengpeng"/>
        <!--第二種bean注入,ref-->
        <property name="address" ref="address"/>
        <!--String[]數(shù)組注入-->
        <property name="book">
            <array>
                <value>紅樓夢(mèng)</value>
                <value>水滸傳</value>
            </array>
        </property>
        <!--list注入-->
        <property name="hobbys">
            <list>
                <value>聽歌</value>
                <value>make</value>
            </list>
        </property>
        <!--map注入-->
        <property name="card">
            <map>
                <entry key="gender" value="male"/>
            </map>
        </property>
        <!--set注入-->
        <property name="games">
            <set>
                <value>lol</value>
            </set>
        </property>
        <!--空值-->
        <property name="wife" value=""/>
        <!--properties注入-->
        <property name="info">
            <props>
                <prop key="學(xué)號(hào)">15200000</prop>
                <prop key="專業(yè)">CS</prop>
            </props>
        </property>
    </bean>
</beans>

2、p-namespace以及c-namespace

2.1 添加方法

<?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" 
       <!--加上這個(gè)-->
       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">
    <bean id="user" class="com.hu.pojo.User" p:name="鵬鵬"/>
</beans>

2.2 p和c區(qū)別

  • p-namespace:通過值進(jìn)行注入,簡(jiǎn)潔方便
  • c-namespace:通過構(gòu)造器進(jìn)行注入,需要在java類文件中加上有參構(gòu)造器和無參構(gòu)造器

Spring p-namespace和c-namespace用法

為什么要講Spring的 p-namespace,c-namespace

  • 對(duì)于簡(jiǎn)單項(xiàng)目或代碼,可以起到簡(jiǎn)化的作用
  • 加強(qiáng)對(duì)Spring新知識(shí)的學(xué)習(xí)
  • 學(xué)習(xí)就是了,哪來那么多為什么!

1、p-namespace

①又叫p-命名空間,

②它是什么意思呢?

首先這樣子講吧,以前我們寫bean的時(shí)候?yàn)槟硞€(gè)對(duì)象的屬性注入值有兩種方式,一種是有參構(gòu)造(constructor-arg),一種是通過(property標(biāo)簽為指定屬性注入值)

③而p正是property的首字母,所以它是干嘛的大家應(yīng)該可以猜得到了

④純粹上是為了簡(jiǎn)化吧(個(gè)人認(rèn)為)

⑤我們直接上例子來學(xué)習(xí)吧

首先在使用p命名空間之前你需要在相應(yīng)的xml文件內(nèi)寫入一些支持配置信息

在這里插入圖片描述

xmlns:p="http://www.springframework.org/schema/p"

項(xiàng)目結(jié)構(gòu)搭建好,還是上節(jié)筆記搭建的(傳送門在博文(個(gè)_個(gè)))

package com.ysj.study;
@SuppressWarnings("ALL")
public class HelloDemo1 {
    private String name;
    private int age;
    public HelloDemo1(){
        System.out.println("HelloDemo1的 無 參構(gòu)造");
    }
    public HelloDemo1(String name) {
        System.out.println("HelloDemo1的 有 參構(gòu)造");
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

在這里插入圖片描述

測(cè)試類寫好

輸出看看結(jié)果

在這里插入圖片描述

這需要注意一下p標(biāo)簽后面的是屬性的名字,不是setter參數(shù)的名字!?。。?/strong>

2、c-namespace

①又叫c-命名空間,

②它是什么意思呢?

就是用來通過有參構(gòu)造為對(duì)象注入初始屬性值

③而c正是constructor-arg的首字母,所以它是干嘛的大家應(yīng)該也可以猜得到了

④純粹上是為了簡(jiǎn)化吧(個(gè)人認(rèn)為)

⑤我們直接上例子來學(xué)習(xí)吧

首先在使用c命名空間之前你需要在相應(yīng)的xml文件內(nèi)寫入一些支持配置信息

xmlns:c="http://www.springframework.org/schema/c"

在這里插入圖片描述

我們對(duì)上面HelloDemo類的有參構(gòu)造進(jìn)行一些修改

在這里插入圖片描述

修改為如下的beans.xml代碼

在這里插入圖片描述

輸出結(jié)果看看

我們把setter方法都去掉,發(fā)現(xiàn)還是可以運(yùn)行的,所以c-命名空間的用法和constructor-agr是一模一樣的

只需要注意下面的圖例就可以

c-namespace的拓展:

其實(shí)c-namespace除了通過參數(shù)名字來注入值以外,還可以通過參數(shù)索引來注入依賴值。如下

在這里插入圖片描述

輸出結(jié)果還是可以的

在這里插入圖片描述

關(guān)于p-namespacec-namespace的用法就這么多,慢慢吸收O(∩_∩)O哈哈~

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

积石山| 邹城市| 米林县| 海淀区| 奈曼旗| 巴南区| 南平市| 宽城| 英吉沙县| 香格里拉县| 衢州市| 邢台县| 万载县| 富平县| 诏安县| 樟树市| 兰州市| 宁蒗| 左权县| 海门市| 正安县| 高雄市| 金乡县| 屏南县| 南岸区| 吉首市| 西华县| 泰宁县| 桦川县| 漳平市| 汾阳市| 通化市| 镇原县| 黄平县| 保靖县| 新蔡县| 新民市| 武威市| 高要市| 临邑县| 迁西县|