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

Spring中的aware接口詳情

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

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

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

先舉個(gè)BeanNameAware的例子,實(shí)現(xiàn)BeanNameAware接口,可以讓該Bean感知到自身的BeanName(對(duì)應(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è)對(duì)象:

 <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方法測(cè)試一下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='火星'}

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    這篇文章主要介紹了Java Mail郵件發(fā)送如何實(shí)現(xiàn)簡(jiǎn)單封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(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à)值,希望對(duì)大家有所幫助,如有錯(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的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-10-10
  • Spring Boot使用Servlet及Filter過(guò)程詳解

    Spring Boot使用Servlet及Filter過(guò)程詳解

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

最新評(píng)論

石楼县| 咸丰县| 石家庄市| 伊川县| 治多县| 子长县| 都匀市| 乐平市| 嘉鱼县| 龙井市| 江陵县| 赤城县| 衡水市| 左权县| 禄丰县| 咸宁市| 鞍山市| 靖宇县| 河东区| 华坪县| 隆子县| 恩施市| 嘉义县| 双桥区| 徐水县| 赣州市| 璧山县| 云林县| 定襄县| 项城市| 城口县| 榆林市| 介休市| 翁牛特旗| 南漳县| 类乌齐县| 大同县| 鸡东县| 黄山市| 桓台县| 怀宁县|