学习Spring的第八天

这篇具有很好参考价值的文章主要介绍了学习Spring的第八天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习Spring的第八天,学习

 先对自定义类使用@MyComponet的注解,在设置这个@MyComponet的的属性(一个

@interface接口),然后,扫描(BaseClassScanUtils.java执行,这文件不重要)当前包下是否有这个注解的类,再用MyComponentBeanFactoryPostProcessor.java(后工厂处理器)执行就行了

MyComponentBeanFactoryPostProcessor.java如下:

package com.itheima.processor;

import com.itheima.utils.BaseClassScanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.beans.factory.support.RootBeanDefinition;

import java.util.Map;

public class MyComponentBeanFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor {

    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
        //通过扫描工具去扫描指定包及其子包下的所有类,收集使用@Mycomponent的注解的类
        Map<String, Class> myComponentAnnotationMap = BaseClassScanUtils.scanMyComponentAnnotation("com.itheima");
        //遍历Map,组装BeanDefinition进行注册
        myComponentAnnotationMap.forEach((beanName,clazz)->{
            //获得beanClassName
            String beanClassName = clazz.getName();//com.itheima.beans.OtherBean
            //创建BeanDefinition
            BeanDefinition beanDefinition = new RootBeanDefinition();
            beanDefinition.setBeanClassName(beanClassName);
            //注册
            registry.registerBeanDefinition(beanName,beanDefinition);
        });
    }

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

    }
}

 

还要在主配置文件里配置文章来源地址https://www.toymoban.com/news/detail-808523.html

<bean class="com.itheima.processor.MyComponentBeanFactoryPostProcessor"></bean>

到了这里,关于学习Spring的第八天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 每日后端面试5题 第八天

    1.UDP无连接,速度快,安全性低,适合高速传输、实时广播通信等。 2.TCP面向连接,速度慢,安全性高,适合传输质量要求高、大文件等的传输,比如邮件发送等。 (还有:TCP只能是一对一的,UDP支持一对一、一对多、多对一) (还有:TCP首部开销有20个字节;UDP分组首部开

    2024年02月11日
    浏览(30)
  • MFC第八天 基本数据类型介绍

    CRect类是MFC中用于表示矩形的类。它提供了方便的方法来操作矩形的位置和大小。CRect类常用于图形绘制、窗口管理和布局等场景。 可以用于绘制矩形、椭圆、圆等图形时需要指定其位置和大小。此外,CRect类还常用于窗口管理,可以通过CRect对象来设置窗口的位置和大小。它

    2024年02月11日
    浏览(35)
  • C语言百日刷题第八天

    打印7层杨辉三角形 图案如下: 这个题我再前几天的刷题中也写过,但是很多人私信说上次写的太简陋了,那我这次就写完整。 通过图,可以看出。无论它是多少层的杨辉三角,它的前两层都是1,所以,无论我们会不会,都可以先把前两层搞定一下。其次,我们可以看出从第

    2024年01月22日
    浏览(26)
  • Java实训第八天——2023.6.14

    官方文档:https://v2.cn.vuejs.org/v2/guide/index.html 1.将vue.min.js复制到js中: 2.在demo01.html中,引入js 3.将官方文档复制到demo01.html中 demo01.html代码如下: 4.出现如下结果,则环境搭建成功! html代码如下: 运行结果: html代码如下: 运行结果如下: 运行结果: 代码如下: 初始页面:

    2024年02月09日
    浏览(34)
  • 自学大数据第八天~HDFS命令(二)

    嗨喽,好久不见,最近抽空复习了一下hadoop,书读百遍,其意自现这句话还真是; 改变文件 拥有者~chown 使用 -R 将使改变在目录结构下递归进行。命令的使用者必须是超级用户。 改变文件所属组-chgrp 改变文件权限-chmod 使用-R将使改变在目录结构下递归进行。命令的使用者必须是文

    2023年04月09日
    浏览(24)
  • Java重修第八天—枚举和泛型

    通过学习本篇文章可以掌握如下知识 1、枚举 2、泛型 枚举是一种 特殊类 枚举类的格式: 为什么说枚举是一个特殊类,定义一个简单的枚举如下: 将其编译成class文件后,使用IDEA打开, 结果如下 :可以看出枚举类A有私有构造器。 枚举类的第一行只能罗列一些名称, 这些

    2024年01月17日
    浏览(28)
  • C语言属刷题训练【第八天】

    A: ‘a’ ‘b’ B: ab\\0c\\0 C: ab c D: ab 字符串的结束标志是’\\0’,而’\\0’的ASCII值是0,而c[2]被初始化为0,就相当于是’\\0’,故字符串打印的内容只有\\\"ab\\\"。 🧥知识点:字符串的结束标志 A: a[2][0] B: a[2][3] C: a[0][3] D: a[12][1] 本题主要考虑数组越界访问的情况,二维数组的行和列

    2024年02月13日
    浏览(26)
  • 学C的第二十八天【字符串函数和内存函数的介绍(一)】

    ========================================================================= 相关代码gitee自取 :C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 学C的第二十七天【指针的进阶(三)】_高高的胖子的博客-CSDN博客  ================================

    2024年02月16日
    浏览(30)
  • 学习Spring的第九天

    Spring Bean的生命周期 Bean的实例化阶段 : 看配置文件里Bean标签的信息 , 来判断进行实例化(如是否有lazy-init , 或者是否是FactoryBean等等) (实际就是Bean标签表面的信息 , 即BeanDefinition)   Bean的初始化阶段 : 对Bean的属性(重要 : BeanPostProcessor方法 , 及如下 , property属性)进行填充 , 使其

    2024年01月23日
    浏览(25)
  • spring boot学习第八篇:kafka

    目录 1、安装kafka 1.1确认jdk是否安装OK 1.2下载安装kafka 1.3验证kafka 2、连接kafka 3、在java中操作kafka 1、安装kafka 1.1确认jdk是否安装Ok 1.2下载安装kafka 配置 进入该目录下的conf文件夹中。 zoo_sample.cfg是一个配置文件的样本,需要将这个文件复制并重命名为zoo.cfg:    cp zoo_sample.cf

    2024年01月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包