首页 > 其他分享 >spring:beanfactory与applicationcontext的设计

spring:beanfactory与applicationcontext的设计

时间:2022-10-04 15:35:44浏览次数:39  
标签:applicationcontext beanFactory spring beanfactory System Bean println new out

beanfactory接口提供的方法:getBean,getBeanProvider,containsBean,isSingleton,getType,getAliases
listableBeanFactory: 不会取到手动注册的bean,为什么要这么做呢,因为有些bean属于 SpringFramework 内部使用的,这样做的目的是 SpringFramework 不希望咱开发者直接操控他们,于是就使用了这种方式来隐藏它们。
此外:除了 getBeanDefinitionCount 和 containsBeanDefinition 之外,此接口中的方法不适用于频繁调用,方法的实现可能执行速度会很慢。

public class ListableBeanFactoryApplication {
    
    public static void main(String[] args) throws Exception {
        ClassPathResource resource = new ClassPathResource("container/listable-container.xml");
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);
        beanDefinitionReader.loadBeanDefinitions(resource);
        // 直接打印容器中的所有Bean
        System.out.println("加载xml文件后容器中的Bean:");
        Stream.of(beanFactory.getBeanDefinitionNames()).forEach(System.out::println);
        System.out.println();
        
        // 手动注册一个单实例Bean
        beanFactory.registerSingleton("doggg", new Dog());
        // 再打印容器中的所有Bean
        System.out.println("手动注册单实例Bean后容器中的所有Bean:");
        Stream.of(beanFactory.getBeanDefinitionNames()).forEach(System.out::println);
    }
}

applicationContext:在BeanFactory基础上扩展了生命周期管理、Bean后置处理器的支持、BeanFactory后置处理器的支持、 消息转换服务(国际化)、事件发布机制(事件驱动)

标签:applicationcontext,beanFactory,spring,beanfactory,System,Bean,println,new,out
From: https://www.cnblogs.com/sjj123/p/16753804.html

相关文章

  • Spring各种注解
    Spring@ControllerAdvice类型:类注解位置:类作用:指定拦截哪些类,并且进行AOP增强属性annotations:拦截加了这些注解的的类,并且进行增强范例@ResponseBod......
  • Spring Cloud Consul 入门指引
    1概述SpringCloudConsul项目为SpringBoot应用程序提供了与Consul的轻松集成。Consul是一个工具,它提供组件来解决微服务架构中一些最常见的挑战:服务发现——......
  • springboot项目 报错No mapping for GET /css/bootstrap.css,前端无法展示样式
    说来也奇怪,前几天刚写完的项目写的好好的现在打开他就加载不了前端的静态资源了报错NomappingforGET/css/bootstrap.css解决方法:新建一个配置类,将静态资源的路径......
  • Spring事务(二)-事务传播行为
    在Spring里,一个事务方法被另外一个事务方法调用时,两个方法的事务应该如何进行,说白话一点,就是说当出现异常需要回滚时,各个方法的数据操作是否要全部回滚,事务传播行为就......
  • Spring事务(四)-事务隔离级别
    Spring @Transactional注解isolation属性@Transactional注解通过isolation属性设置事务隔离级别。如下:@Transactional(isolation=Isolation.DEFAULT)publicvoid......
  • Springboot接收请求参数示例
    packagecom.example.demo.controller;importcom.example.demo.model.User;importorg.springframework.web.bind.annotation.*;importorg.springframework.web.mult......
  • SpringBoot运行报错
    在SpringBoot启动时报错发现自己写的测试类这个Mapper报错但是Mapper包里面与以前写的一样但是在SPringBoot里面这个Mapper必须要打上注解才能运行......
  • Spring事务(一)-事务配置
      事务是数据库操作最基本的单元,是逻辑上的一组操作,这一组操作在同一个会话中要么都执行成功,要么都失败,这也是事务的最基本特性--原子性。事务的作用是为了保证系统数据......
  • 定时任务quartz与spring的集成
     我想要在spring的集成框架中使用spring,暂时采用quartz 根据下面的几篇博客实现了(懒得说了,直接丢链接):Quartz实现动态定时任务​​Spring3整合Quartz2实现定时任务二:......
  • spring
    依赖查找:BeanFactorybeanFactory=newClassPathXmlApplicationContext("basic_di/inject-set.xml");Personperson=beanFactory.getBean(Person.class);根据ty......