BeanFactor的开发步骤

  1. 导入Spring的jar包或Maven坐标;

    导入坐标
    
       
           org.springframework
           spring-context
           5.3.7
       
    
  2. 定义UserService接口及其UserServiceImpl实现类;

  3. 创建beans.xml文件,将UserServiceImpl的信息配置到改xml当中;

    resource文件夹中创建beans.xml文件,配置我们想要交给Spring管理的类的信息,

    id是这个bean的名字,我们可以通过这个名字获取实际的对象。

  4. 编写测试代码,创建BeanFaactor,加载配置文件,获取UserService实例对象;

    //创建工厂对象
    DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory() ;
    //创建一个读取器
    XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory) ;
    //读取配置文件给工厂
    reader.loadBeanDefinitions("beans.xml") ;
    //根据id获取bean实例对象
    UserService userService = (UserService) beanFactory.getBean("userService");
    System.out.println(userService);

    创建UserDaoBean并且将我们的USerDao配置给我们的服务UserService

    先在我们的UserService类中创建方法setUserDao方法

    public class UserServiceImpl implements UserService{
       public void setUserDao(UserDaoImpl userDao){
           System.out.println("BeanFactory去调用该方法获得userDao设置到此处" + userDao);
       }
    }

    更改baean.xml文件中UserService的配置,将userDao自动注入到我们set方法中

    
    
    

什么是ApplicationContext

ApplicationContext称为Spring容器,内部封装了BeanFactory,让BeanFactory的功能更加丰富和强大,使用ApplicationContext进行开发时,xml配置文件的名称习惯习惯写为applicationContext.xml

如何使用ApplicationContext

//创建ApplicationContext,加载配置文件,实例化容器
ApplicationContext applicationContext("applicationContext.xml");
//根据beanName获得容器中的的实例
UserService userService = (UserService) applicationContext.getBean("userService");

BeanFactorAnd ApplicationContext的联系

  1. BeanFactorySpring的早期接口,称为Spring的工厂,ApplicationContext是更后期的接口更高级的接口,称之为Spring容器;
  2. ApplicationContextBaenFactory的基础上对功能进行了扩展,例如:监听功能、国际化功能等。BeanFctoryAPI更偏向底层,ApplicationContextAPI大多数是对这些底层API的封装;
  3. Bean创建的主要逻辑和功能都封装在BeanFactory中,ApplicationContext不仅继承了BeanFactory,而且ApplicationContext内部还维护着BeanFactory的引用,所以,ApplicationContextBeanFactory既有继承关系,又有融合关系。
  4. Bean的初始化时机不一样,原始的BeanFactory实在首次调用getBean时才进行Bean的创建,而ApplicationContext则时配置文件加载,容器一创建就将Bean都实例化并初始化好。

![image-20240923115307124](D:\学习\笔记\spring\BeanFactor And ApplicationContext快速入门.assets\image-20240923115307124.png)

BeanFactorAnd ApplicationContext的继承体系

只在Spring基础环境下,常用的三个ApplicationContext作用如下:

  • ClassPathXmlApplicationContext :加载类加载路径下的xml配置文件的ApplicationContext
  • FileSystemXmlApplicationContext :加载类磁盘路径下的xml配置文件的ApplicationContext
  • AnnotationConfigApplicationContext :加载类注解配置类的ApplicationContext
我打算法竞赛,真的假的。
最后更新于 2024-09-24