首页 > 编程语言 >浅析Spring IoC源码(八)了解BeanFactoryAware

浅析Spring IoC源码(八)了解BeanFactoryAware

时间:2023-11-08 17:34:57浏览次数:42  
标签:Spring factory springframework bean 源码 BeanFactoryAware org import 浅析



这一节我们还是先了解一下BeanFactoryAware这个接口,之所以说只是了解一下,还是希望等到分析refresh()的时候有个更好的理解吧

照旧先上源代码:

浅析Spring IoC源码(八)了解BeanFactoryAware_xml

官方解释:实现这个接口的bean其实是希望知道自己属于哪一个beanfactory

言简意赅,不需要做多解释,先实现一下自己,看看他的基本功能吧,看代码:

MyBeanFactoryAware.java


bean-factory-aware.xml

1. package org.study.spring.beanfactoryaware;  
2.   
3. import org.springframework.beans.BeansException;  
4. import org.springframework.beans.factory.BeanFactory;  
5. import org.springframework.beans.factory.BeanFactoryAware;  
6.   
7. public class MyBeanFactoryAware implements BeanFactoryAware{  
8.       
9.   
10. public void setBeanFactory(BeanFactory beanFactory) throws BeansException {  
11. "I belong to :"+beanFactory);  
12.     }  
13.   
14. }


1. <?xml version="1.0" encoding="UTF-8"?>  
2. <beans xmlns="http://www.springframework.org/schema/beans"  
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
4. xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"  
5. xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee"  
6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd  
7.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd  
8.         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd  
9.         http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd  
10. >  
11.    
12.       
13.             
14. <bean id="mybeanFactoryAware" class="org.study.spring.beanfactoryaware.MyBeanFactoryAware"></bean>  
15.   
16. </beans>

MyBeanFactoryAwareTest.java


1. package org.study.spring.beanfactoryaware;  
2.   
3. import org.junit.Test;  
4. import org.springframework.context.ApplicationContext;  
5. import org.springframework.context.support.ClassPathXmlApplicationContext;  
6.   
7. public class MyBeanFactoryAwareTest{  
8.       
9.       
10. @Test  
11. public void test2() throws Exception{  
12. new ClassPathXmlApplicationContext("bean-factory-aware.xml");  
13. "mybeanFactoryAware",MyBeanFactoryAware.class);  
14.            
15.     }  
16.   
17. }


运行结果:

浅析Spring IoC源码(八)了解BeanFactoryAware_spring_02


的确,根据我们上次分析的源代码,的确属于DefaultListableBeanFactory


换个说法,我们目前不知道这个接口更多真实的意义,如果不分析其他的部分,我们就知道可以在实现BeanFactoryAware的bean中获取beanfactory,也就是获取上下文,其他的不知道暂时有什么用处,也许分析refresh就会有理解了吧~




标签:Spring,factory,springframework,bean,源码,BeanFactoryAware,org,import,浅析
From: https://blog.51cto.com/u_809530/8256919

相关文章

  • Spring Boot JedisCluster配置
    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API1、添加Maven依赖(或jar包)<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dep......
  • 浅析Spring IoC源码(七)浅谈BeanFactory和FactoryBean
    这一节我们就简单的介绍一下FactoryBean,知道这个接口的作用和意义,方便我们refresh()这个方法的理解照旧,我们依旧先看源码,从源码中查看一下他的作用吧~这次就不一句句翻译了(太多了),还是稍微大概的讲一下意思吧:FactoryBean是一个接口,任何一个Bean可以实现这个接口,那么这个bean将成为一......
  • Spring 4.x-Context的UML类图
    ......
  • geonetwork源码编译与开发入门说明
    本文介绍geonetwork源码编译及简单的开发修改。本文包括源码调试的细节,主要给没怎么接触过java又想调试修改部分java代码的提供一定帮助,比如控制器或修改业务逻辑中的增删改操作等本文使用环境:操作系统:Windows11JDK版本:jdk-8u381-windows-x64.exeMaven版本:apache-maven-3.9.......
  • Spring Kafka: UnknownHostException: 34bcfcc207e0
    参考:https://stackoverflow.com/questions/69527813/spring-kafka-unknownhostexception-34bcfcc207e0我遇到的问题和@AdánEscobar是一样的。在SpringBoot整合kafka的时候日志报了SpringKafka:UnknownHostException:34bcfcc207e0,34bcfcc207e0经过排查是容器的ID。解决......
  • Spring整合使用RMI-HelloWorld例子
    Spring整合RMI的原理客户端的核心是RmiProxyFactoryBean,包含serviceURL属性和serviceInterface属性。通过JRMP访问服务。JRMPJRMP:javaremotemethodprotocol,Java特有的,基于流的协议。 服务端暴露远程服务RmiServiceExporter把任何Spring管理的Bean输出成一个RMI服务。通......
  • Spring注入Hibernate验证框架
    Spring配置文件<!--EnablestheSpringMVC@Controllerprogrammingmodel--> <mvc:annotation-drivenvalidator="validator"/> <!--配置数据校验--> <beanid="messageSource" class="org.springframework.context.suppor......
  • Spring 3.0 注解注入详解
    一、各种注解方式 1.@Autowired注解(不推荐使用,建议使用@Resource)     @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性。要使@Autowired能够工作,还需要在配置文件中......
  • Springboot项目出现Error resolving template [index]的解决方法
    在SpringBoot中遇到模板文件不存在的问题在SpringBoot开发中,有时候会遇到Errorresolvingtemplate[index],templatemightnotexist这个错误,一般来说,这个错误可能有以下几种原因:模板文件路径错误:需要确认模板文件是否存在,并且其路径是否正确。通常模板文件的路径应该是class......
  • springboot3.1.5+文件上传+文件下载
    idea创建项目springbootdemo-download-upload加上thymeleaf模板maven依赖application.properties配置#thymeleaf页面缓存设置(默认为true)spring.thymeleaf.cache=false#单个上传文件大小限制(默认1MB)spring.servlet.multipart.max-file-size=10MB#总上传文件大小限制(默......