返回顶部
首页 > 资讯 > 后端开发 > Python >Spring中的aware接口详情
  • 782
分享到

Spring中的aware接口详情

2024-04-02 19:04:59 782人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

spring中有很多继承于aware中的接口,这些接口到底是做什么用到的。 aware,翻译过来是知道的,已感知的,意识到的,所以这些接口从字面意思应该是能感知到所有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;


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;


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接口内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Spring中的aware接口详情

本文链接: https://lsjlt.com/news/149089.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring中的aware接口详情
    Spring中有很多继承于aware中的接口,这些接口到底是做什么用到的。 aware,翻译过来是知道的,已感知的,意识到的,所以这些接口从字面意思应该是能感知到所有Aware前面...
    99+
    2024-04-02
  • 详解spring中的Aware接口功能
    目录一,ApplicationContextAware二、ApplicationEventPublisherAware在spring中有很多以XXXAware命名的接口,很多人也不清...
    99+
    2024-04-02
  • Spring Aware接口示例代码详解
    若 Spring 检测到 bean 实现了 Aware 接口,则会为其注入相应的依赖。所以通过让bean 实现 Aware 接口,则能在 bean 中获得相应的 Spring 容器资...
    99+
    2024-04-02
  • Spring高级接口Aware浅析
    目录Aware 接口功能阐述功能案例演示扩展功能失效场景分析总结Aware 接口功能阐述 Aware 接口提供了一种【内置】 的注入手段,例如 a.BeanNameAware 注入 ...
    99+
    2023-01-30
    Spring Aware Spring Aware接口
  • Spring的Aware接口你知道多少
    若 Spring 检测到 bean 实现了 Aware 接口,则会为其注入相应的依赖。所以通过让bean 实现 Aware 接口,则能在 bean 中获得相应的 Spring 容器资...
    99+
    2024-04-02
  • 浅析对Spring aware接口理解
    目录1. aware接口的作用2. 常用aware接口及作用3. 使用样例:ApplicationContextAware 在Bean中获取上下文4. 自定义aware的方式4.1 ...
    99+
    2024-04-02
  • Spring的Aware接口实现及执行顺序详解
    目录一、实现了Aware的接口二、为什么要使用 Aware 接口三、Aware接口执行顺序一、实现了Aware的接口 Spring中有很多继承于aware中的接口,这些接口到底是做什...
    99+
    2022-12-26
    Spring Aware接口执行顺序 Spring Aware
  • Spring中Aware接口的实现原理是什么
    今天就跟大家聊聊有关Spring中Aware接口的实现原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用示例:@Component&nbs...
    99+
    2024-04-02
  • Spring中的bean怎么利用Aware接口获取
    这期内容当中小编将会给大家带来有关Spring中的bean怎么利用Aware接口获取,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在使用spring编程时,常常会遇到想根据bean的名称来获取相应的bea...
    99+
    2023-05-31
    spring bean aware
  • 详解Spring中InitializingBean接口的功能
    Spring的InitializingBean接口有很好的用处,位于spring beans中,它只提供一个方法afterPropertiesSet(),当你实现了该方法后,spri...
    99+
    2024-04-02
  • Python中面向接口编程详情
    目录前言概述 Python 接口非正式接口前言 接口在软件工程扮演重要角色,随着应用程序的功能不断扩展,代码库的更新和改变也难以管理。在许多情况下,会发现有一些看起来非常相似,但却不...
    99+
    2024-04-02
  • spring BeanProcessor接口详解
    目录1. 简单认识BeanProcessorBeanProcessor的理解一个BeanProcessor的使用实例2. BeanProcessor的实现思路和简化实例BeanPro...
    99+
    2024-04-02
  • 探究实现Aware接口的原理及使用
    目录前言设计&实现Aware 感知接口提供具体能力的接口测试前言 spring 对bean的创建过程做了很完整的封装。但是提供了非常多的扩展接口,供我们使用。这一节主要是实现...
    99+
    2023-05-18
    Aware接口原理使用 Aware接口实现
  • Spring BeanPostProcessor接口使用详解
    Spring中提供了很多PostProcessor供开发者进行拓展,例如:BeanPostProcessor、BeanFactoryPostProcessor、BeanValidationPostProcessor等一系列后处理器。他们的使...
    99+
    2023-05-30
  • Java中的Spring循环依赖详情
    目录一、什么是循环依赖?那么循环依赖是个问题吗?二、Bean的生命周期三、三级缓存解决循环依赖思路分析四、Spring到底解决了哪种情况下的循环依赖五、总结一、什么是循环依赖? 很简...
    99+
    2024-04-02
  • Java抽象类和接口的区别详情
    1、抽象类 vs 接口  方法类型: 接口只能有抽象方法。抽象类可以有抽象和非抽象方法。从 Java 8 开始,它也可以有默认和静态方法。 最终变量: 在 Java...
    99+
    2024-04-02
  • Spring的IOC原理详情
    目录1 IOC的理论背景2 什么是控制反转(IoC)3 IOC的别名:依赖注入(DI)4 IOC为我们带来了什么好处5 IOC容器的技术剖析6 IOC容器的一些产品7 使用IOC框架...
    99+
    2024-04-02
  • Spring详细讲解FactoryBean接口的使用
    目录一、基本使用二、高级使用FactoryBean是一个接口,创建对象的过程使用了工厂模式。 一、基本使用 让Spring容器通过FactoryBean来实现对象的创建。 创建Fa...
    99+
    2024-04-02
  • Spring中Bean扫描原理详情
    目录前言环境建设正式开始configureScanner第一段代码第二段代码第三段代码第四段代码parseTypeFiltersdoScanfindCandidateComponen...
    99+
    2024-04-02
  • 详解Spring中实现接口动态的解决方法
    前言本文主要给大家介绍的是关于Spring实现接口动态的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧。关于这个问题是因为领导最近跟我提了一个需求,是有关于实现类Mybatis的@Select、@Insert注解的功...
    99+
    2023-05-31
    spring 动态接口
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作