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

Spring中的aware接口詳情

 更新時(shí)間:2022年05月18日 14:38:11   作者:一滴水的堅(jiān)持  
這篇文章主要介紹了Spring中的aware接口詳情,Spring中有很多繼承于aware中的接口,這些接口到底是做什么用到的,下面我們就一起來看看吧,文章詳細(xì)內(nèi)容需要的小伙伴可以參考一下

Spring中有很多繼承于aware中的接口,這些接口到底是做什么用到的。

aware,翻譯過來是知道的,已感知的,意識(shí)到的,所以這些接口從字面意思應(yīng)該是能感知到所有Aware前面的含義。

先舉個(gè)BeanNameAware的例子,實(shí)現(xiàn)BeanNameAware接口,可以讓該Bean感知到自身的BeanName(對應(yīng)Spring容器的BeanId屬性)屬性,舉個(gè)例子:

BeanNameAware接口的定義:

public interface BeanNameAware extends Aware {
      void setBeanName(String name);
}

定義兩個(gè)User,一個(gè)實(shí)現(xiàn)BeanNameAware,一個(gè)不實(shí)現(xiàn)。

package com.github.jettyrun.springinterface.demo.aware.beannameaware;
import org.springframework.beans.factory.BeanNameAware;

/**
 * Created by jetty on 18/1/31.
 */
public class User implements BeanNameAware{

    private String id;

    private String name;

    private String address;

    public void setBeanName(String beanName) {
        //ID保存BeanName的值
        id=beanName;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
package com.github.jettyrun.springinterface.demo.aware.beannameaware;
import org.springframework.beans.factory.BeanNameAware;

/**
 * Created by jetty on 18/1/31.
 */
public class User2 {

    private String id;

    private String name;

    private String address;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

在Spring配置文件中初始化兩個(gè)對象:

 <bean id="zhangsan"  class="com.github.jettyrun.springinterface.demo.aware.beannameaware.User">
        <property name="name" value="zhangsan"></property>
        <property name="address" value="火星"></property>
    </bean>

    <bean id="lisi"  class="com.github.jettyrun.springinterface.demo.aware.beannameaware.User2">
        <property name="name" value="lisi"></property>
        <property name="address" value="火星"></property>
    </bean>
  • main方法測試一下BeanNameAware接口所起的作用。
 public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:application-beanaware.xml");

        User user=context.getBean(User.class);
        System.out.println(String.format("實(shí)現(xiàn)了BeanNameAware接口的信息BeanId=%s,所有信息=%s",user.getId(),user.toString()));

        User2 user2=context.getBean(User2.class);
        System.out.println(String.format("未實(shí)現(xiàn)BeanNameAware接口的信息BeanId=%s,所有信息=%s",user2.getId(),user2.toString()));
    }

運(yùn)行結(jié)果:

實(shí)現(xiàn)了BeanNameAware接口的信息BeanId=zhangsan,所有信息=User{id='zhangsan', name='zhangsan', address='火星'}
未實(shí)現(xiàn)BeanNameAware接口的信息BeanId=null,所有信息=User{id='null', name='lisi', address='火星'}

能夠看到,我們在實(shí)現(xiàn)了BeanNameAware的 User中,獲取到了Spring容器中的BeanId(對應(yīng)spring配置文件中的id屬性),而沒有實(shí)現(xiàn)BeanNameAwareUser2,則不能獲取到Spring容器中的Id屬性。

所以BeanNameAware接口是為了讓自身Bean能夠感知到,獲取到自身在Spring容器中的id屬性。

同理,其他的Aware接口也是為了能夠感知到自身的一些屬性。
比如實(shí)現(xiàn)了ApplicationContextAware接口的類,能夠獲取到ApplicationContext,實(shí)現(xiàn)了BeanFactoryAware接口的類,能夠獲取到BeanFactory對象。

到此這篇關(guān)于Spring中的aware接口詳情的文章就介紹到這了,更多相關(guān)aware接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析idea 添加項(xiàng)目依賴的兩種方式

    淺析idea 添加項(xiàng)目依賴的兩種方式

    這篇文章主要介紹了idea 添加項(xiàng)目依賴的兩種方式,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • springboot整合gateway的詳細(xì)過程

    springboot整合gateway的詳細(xì)過程

    本文介紹了如何配置和使用Spring Cloud Gateway構(gòu)建一個(gè)API網(wǎng)關(guān),通過實(shí)例代碼介紹了springboot整合gateway的過程,需要的朋友可以參考下
    2025-01-01
  • Spring Cloud之服務(wù)監(jiān)控turbine的示例

    Spring Cloud之服務(wù)監(jiān)控turbine的示例

    這篇文章主要介紹了Spring Cloud之服務(wù)監(jiān)控turbine的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 深入了解Springboot核心知識(shí)點(diǎn)之?dāng)?shù)據(jù)訪問配置

    深入了解Springboot核心知識(shí)點(diǎn)之?dāng)?shù)據(jù)訪問配置

    這篇文章主要為大家介紹了Springboot核心知識(shí)點(diǎn)中的數(shù)據(jù)訪問配置,文中的示例代碼講解詳細(xì),對我們了解SpringBoot有一定幫助,快跟隨小編一起學(xué)習(xí)一下吧
    2021-12-12
  • Java Mail郵件發(fā)送如何實(shí)現(xiàn)簡單封裝

    Java Mail郵件發(fā)送如何實(shí)現(xiàn)簡單封裝

    這篇文章主要介紹了Java Mail郵件發(fā)送如何實(shí)現(xiàn)簡單封裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 關(guān)于Nacos單機(jī)啟動(dòng)的兩種方式

    關(guān)于Nacos單機(jī)啟動(dòng)的兩種方式

    這篇文章主要介紹了關(guān)于Nacos單機(jī)啟動(dòng)的兩種方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java實(shí)現(xiàn)圖片水平和垂直翻轉(zhuǎn)效果

    java實(shí)現(xiàn)圖片水平和垂直翻轉(zhuǎn)效果

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖片水平和垂直翻轉(zhuǎn)效果,圖片旋轉(zhuǎn)的靈活運(yùn)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java線程池中Worker線程執(zhí)行流程原理解析

    java線程池中Worker線程執(zhí)行流程原理解析

    這篇文章主要為大家介紹了java線程池中Worker線程執(zhí)行流程原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • SpringBoot自定義MessageConverter與內(nèi)容協(xié)商管理器contentNegotiationManager詳解

    SpringBoot自定義MessageConverter與內(nèi)容協(xié)商管理器contentNegotiationManag

    這篇文章主要介紹了SpringBoot自定義MessageConverter與內(nèi)容協(xié)商管理器contentNegotiationManager的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Spring Boot使用Servlet及Filter過程詳解

    Spring Boot使用Servlet及Filter過程詳解

    這篇文章主要介紹了Spring Boot使用Servlet及Filter過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評論

双流县| 中阳县| 平江县| 卢龙县| 宜昌市| 兴宁市| 深州市| 河西区| 环江| 甘德县| 台南市| 特克斯县| 象山县| 醴陵市| 泸溪县| 沙坪坝区| 大渡口区| 内黄县| 瑞安市| 琼中| 梓潼县| 抚州市| 陵川县| 达孜县| 泰安市| 新建县| 河北省| 株洲县| 双辽市| 盐亭县| 长治县| 叶城县| 平阴县| 清水县| 丰城市| 乐东| 武义县| 通州区| 闽侯县| 彭水| 无为县|