久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Spring中的aware接口詳情

這篇文章主要介紹了Spring中的aware接口詳情,Spring中有很多繼承于aware中的接口,這些接口到底是做什么用到的,下面我們就一起來看看吧,文章詳細內容需要的小伙伴可以參考一下

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

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

先舉個BeanNameAware的例子,實現BeanNameAware接口,可以讓該Bean感知到自身的BeanName(對應Spring容器的BeanId屬性)屬性,舉個例子:

BeanNameAware接口的定義:

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

定義兩個User,一個實現BeanNameAware,一個不實現。

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配置文件中初始化兩個對象:

 <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("實現了BeanNameAware接口的信息BeanId=%s,所有信息=%s",user.getId(),user.toString()));

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

運行結果:

實現了BeanNameAware接口的信息BeanId=zhangsan,所有信息=User{id='zhangsan', name='zhangsan', address='火星'}
未實現BeanNameAware接口的信息BeanId=null,所有信息=User{id='null', name='lisi', address='火星'}

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

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

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

到此這篇關于Spring中的aware接口詳情的文章就介紹到這了,更多相關aware接口內容請搜索html5模板網以前的文章希望大家以后多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

主站蜘蛛池模板: 水蜜桃久久夜色精品一区 | 欧美日韩精品中文字幕 | 国产精品一区二区无线 | 亚洲一区二区三区在线免费 | 久久亚洲一区二区 | 91在线观看免费视频 | 欧美激情精品久久久久久变态 | 欧美极品一区二区 | 精品国产一区二区三区久久狼黑人 | 亚洲在线免费观看 | 密室大逃脱第六季大神版在线观看 | 噜噜噜噜狠狠狠7777视频 | 午夜黄色| www.久久| 天堂久久久久久久 | 日本不卡高清视频 | 免费观看的av毛片的网站 | 日韩不卡一区二区三区 | 涩爱av一区二区三区 | 亚洲欧美日韩电影 | 成人免费网站视频 | 亚洲欧洲小视频 | 国产在线观看一区二区三区 | 中文字幕乱码视频32 | 国产日韩欧美在线观看 | 亚洲精品第一国产综合野 | 黄色片免费在线观看 | 国产黄色小视频 | 青青久在线视频 | 精品在线视频播放 | 日韩在线播放视频 | 一区二区三区免费 | 亚洲一区精品在线 | 亚洲成人二区 | 日韩在线视频免费观看 | se婷婷| 福利国产| 亚洲欧美中文日韩在线v日本 | 色偷偷人人澡人人爽人人模 | 国产日韩欧美精品一区二区三区 | 国产精品精品久久久 |