Spring入门—自定义bean和BeanDefinitionRegistryPostProcessor

本文介绍了如何通过Spring的XML配置引入Spring框架,并详细讲解了`BeanDefinitionRegistryPostProcessor`的作用以及如何使用`component-scan`和`@Component`注解。内容还涉及了Java工程中Spring框架的依赖管理和配置过程。
摘要由CSDN通过智能技术生成

引入Spring

========================================================================

只要引入了spring-context,就算是引入Spring了

// https://mvnrepository.com/artifact/org.springframework/spring-context

implementation ‘org.springframework:spring-context:5.2.9.RELEASE’

使用Spring

========================================================================

首先你得有个spring的配置文件:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

"

<context:component-scan base-package=“com.example.spring.beans”/>

最最基础的通过xml引入spring的代码如下:

public void test1(){

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(“spring.xml”);

//student是通过bean的方式手动写入的

Object student = applicationContext.getBean(“student”);

System.out.println(student);

//teacher是通过component-scan+@Component注解结合的

Object teacher = applicationContext.getBean(“teacher”);

System.out.println(teacher);

}

BeanDefinitionRegistryPostProcessor

===================================================================================================

BeanDefinitionRegistryPostProcessor是Spring提供的一个接口,可以用来对BeanDefinition进行增删改。

引申一下,Spring管理的所有的bean都必须生成BeanDefinition之后注册到BeanDefinitionRegistry中

我们直接看下面这段代码:

@Component

public class MyBeanDefinitionRegisterPostProcessor implements BeanDefinitionRegistryPostProcessor {

@Override

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {

//从registry中获取名为student的bean的BeanDefinition

BeanDefinition student = registry.getBeanDefinition(“student”);

//获取student的propertyValues并添加age=20的属性

student.getPropertyValues().add(“age”, 20);

//创建一个通用的GenericBeanDefinition

GenericBeanDefinition genericBeanDefinition = new GenericBeanDefinition();

//设置beanClass为MyCustomizationBean1

genericBeanDefinition.setBeanClass(MyCustomizationBean1.class);

//将创建的BeanDefinition注册到registry中

registry.registerBeanDefinition(“myCustomizationBean1”, genericBeanDefinition);

}

@Override

public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

结尾

查漏补缺:Java岗 千+道面试题Java基础+全家桶+容器+反射+异常等

这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!**
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值