当前位置: 首页 > news >正文

ApplicationContext接口实现(三)

         除了前面讲过的两种applicationContext接口实现类之外,还有基于java配置类的实现接口

AnnotationConfigApplicationContext,这是一种比较常用的接口容器。

        基于Java配置类的实现

1.准备实体类

 static class Bean1{}static class Bean2{private Bean1 bean1;public void setBean1(Bean1 bean1){this.bean1 = bean1;}public Bean1 getBean1(){return bean1;}}

2.准备配置类

         使用@Configuration以及@Bean注解配置类,并且需要设置类之间的注入关系。

    @Configurationstatic class Config{@Beanpublic Bean1 bean1(){return new Bean1();}@Beanpublic Bean2 bean2(Bean1 bean1){Bean2 bean2 = new Bean2();bean2.setBean1(bean1);return bean2;}}

3.AnnotationConfigApplicationContext类的使用

public static void testAnnotationConfigApplicationContext(){AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);for (String name : context.getBeanDefinitionNames()){System.out.println(name);}System.out.println(context.getBean(Bean2.class).getBean1());}

4.调用方法

  public static void main(String[] args) {//testClassPathXmlApplicationContext();//testFileSystemXmlApplicationContext();/*DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();System.out.println("读取之前....");for(String name : beanFactory.getBeanDefinitionNames()){System.out.println(name);}XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);reader.loadBeanDefinitions(new FileSystemResource("src\\main\\resources\\a01.xml"));System.out.println("读取之后");for(String name : beanFactory.getBeanDefinitionNames()){System.out.println(name);}*/testAnnotationConfigApplicationContext();}

输出结果:

       通过结果可以看到Spring容器里面注入了Config配置类以及Bean1和Bean2。并且还自带了一些后处理器。效果等于使用了下面的代码。

AnnotationConfigUtils.registerAnnotationConfigProcessors(beanFactory);

http://www.dtcms.com/a/414290.html

相关文章:

  • 英文版网站建设的意义网站怎么做友链
  • 第5章:前后端编码规范
  • Java实现文件下载
  • Python api示例
  • StarRocks:Connect Data Analytics with the World
  • deepseek Kotlin Channel 详细学习指南
  • 网站市场推广东莞 网站制作
  • 面试题回顾
  • Visual Studio 2026 IDE发布了
  • 在MCUXpresso IDE中建立使用静态库的工程
  • 【人工智能通识专栏】第二十八讲:IDE集成Deepseek
  • 电子商务网站建设参考书软文时光发稿平台
  • Flask与Django:Python Web框架的哲学对决
  • Android 消息循环机制
  • 若依前后端分离版集成到企业微信自建应用
  • 电商网站建设心得ps做网站首页怎么运用起来
  • 免费建一级域名网站精品网站设计
  • windows电脑如何执行openssl rand命令
  • 【MySQL✨】MySQL 入门之旅 · 第十一篇:常见错误排查与解决方案
  • Word表格数据提取工具
  • 【Rust GUI开发入门】编写一个本地音乐播放器(1. 主要技术选型架构设计)
  • Rust 中的 static 和 const
  • Linux操作系统-进程(一)
  • 零基础学AI大模型之LangChain六大核心模块与大模型IO交互链路
  • 20250927让荣品RD-RK3588-MID开发板的Android13系统在uboot下关闭背光充电
  • 人工智能专业知识图谱
  • 深入理解Windows服务:架构、管理与编程实践
  • 作风建设简报--门户网站如何提高网站百度权重
  • CentOS7搭建ELK日志分析系统
  • 基于大数据hive的银行信用卡用户的数仓系统的设计与实现_django