• 传统Spring项目的创建和使用xml文件来保存对象和取对象


    传统Spring项目的创建和使用xml文件来保存对象和取对象## 传统Spring项目的创建

    一、创建一个maven项目(maven项目无需使用模板)

    在这里插入图片描述
    在这里插入图片描述

    二、导入Spring依赖(Spring Context依赖和Spring Beans依赖)

    可以从maven仓库获取,也可以从这里获取

     
            
                org.springframework
                spring-context
                5.2.3.RELEASE
            
            
            
                org.springframework
                spring-beans
                5.2.3.RELEASE
            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    三、创建一个启动类

    在这里插入图片描述

    如何将对象保存到Spring容器中(这里使用注解的方式)

    注意:在Spring容器中对象是用bean 表示

    第一步:创建一个bean(对象)
    第二步:在resources包里创建一个spring-config.xml文件,并且配置spring-config.xml文件
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:content="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 https://www.springframework.org/schema/context/spring-context.xsd">
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    第三步:将bean注册到Spring容器中
    <bean id="注册到Spring中对象的名字(可以自己取)" class="注册到Spring中对象的路径(包名+类名)">bean>
    
    • 1

    如何从Spring容器中取bean对象

    首先,我们需要获取到Spring容器的上下文对象

    获取方法有两种:

    【方式一】 **(建议使用)**使用ApplicationContext接口和ClassPathXmlApplicationContext类(ClassPathXmlApplicationContext类是ApplicationContext接口的子类)

     ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring配置文件的名称")
    
    • 1
    QQ图片20221106153511

    【方式二】使用BeanFactory接口和XmlBeanFactory类(XmlBeanFactory类是BeanFactory接口的子类)和ClassPathResource类

    BeanFactory applicationContext = new XmlBeanFactory(new ClassPathResource("spring-config.xml"))
    
    • 1

    在这里插入图片描述

    ApplicationContext接口和BeanFactory接口的异同

    相同点:ApplicationContext接口和BeanFactory接口都是可以获取到Spring容器的上下文,并且完成获取Spring容器里的对象,所表示的效果差不多

    不同点:

    在继承关系和功能方面:ApplicationContext接口是BeanFactory接口的子类,ApplicationContext接口继承了BeanFactory接口的所有功能和能力。BeanFactory接口只具备最基本的访问Bean的能力,而ApplicationContext接口除了这个能力外,还有了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持。ApplicationContext接口的功能更加强大。

    **在性能和加载方式方面:**BeanFactory是按需求加载bean(懒汉式加载),而ApplicationContext则是一次性加载全部的bean(饿汉式加载)

    获取到Spring上下文对象后,我们可以通过getBean()方法来获取对象

    Spring上下文对象的getBean()方法有很多重载方法,这里介绍三种常用的

    【第一种通过bean的id名称来获取bean】

     User user = (User) applicationContext.getBean("user");
    
    • 1

    注意:参数里的字符串内容要用spring-config.xml配置文件的bean的id名称一样

    【第二种通过类型来获取bean】

     User user = applicationContext.getBean(User.class)
    
    • 1

    【第三种通过bean的id名称和类的类型来获取bean】 (强烈推荐使用)

    User user = applicationContext.getBean("user",User.class)
    
    • 1

    总结

    在这里插入图片描述

  • 相关阅读:
    聊聊 Netty 那些事儿之 Reactor 在 Netty 中的实现(创建篇)
    CentOS7.6升级内核到5.11及build RPM包
    136、LeetCode-496.下一个更大元素Ⅰ
    recovery模式差分(增量)升级小结
    @Controller与@RestController
    [附源码]java毕业设计购买车票系统
    程序员需要了解的 现代散文精选翻译
    Docker安装RocketMQ
    3.msfconle
    处理本地DNS劫持,导致域名解析失败
  • 原文地址:https://blog.csdn.net/weixin_62877993/article/details/127718860