• Spring的创建和使用


    Spring项目的创建和使用

    1. 创建Spring项目
    2. 将对象存储到Spring框架
    3. 将对象从Spring框架读出来(使用)

    一.创建Spring项目

    接下来使用 Maven 方式来创建⼀个 Spring 项目,创建 Spring 项目和 Servlet 类似,总共分为以下 3步:

    1. 创建一个普通 Maven 项目。

    在这里插入图片描述

    2.添加 Spring 框架支持(spring-context、spring-beans)

    在项目的 pom.xml 中添加 Spring 框架的支持,xml 配置如下:

    在这里插入图片描述
    从上述配置中可以看出,添加的框架有spring-context: spring上下文,还有spring-beans:管理对象的模块

    3.添加启动类

    最后在创建好的项目java文件夹下创建一个启动类,包含 main方法即可:
    在这里插入图片描述

    二.存储 Bean 对象

    存储Bean分为以下2步:

    1.创建Bean

    1. 存储Bean之前,先得有Bean 才行,因此先要创建一个Bean。

    所谓的 Bean 就是 Java 中的⼀个普通对象,实现代码如下:
    在这里插入图片描述

    2. 将创建的Bean注册到 Spring容器中

    在这里插入图片描述

    右侧小框里面展示的是将user对象注册到Spring中。

    三.获取并使用Bean对象

    获取并使用Bean对象,分为以下3步:

    1. 得到Spring 上下文对象

    因为对象都交给Spring管理了,所以获取对象要从 Spring中获取,那么就得先得到Spring的上下文。

    Spring 上下文对象可使用ApplicationContext,除了ApplicationContext之外,我们还可以使用BeanFactory来作为Spring 的上下文。

    ApplicationContextBeanFactory的区别

    ApplicationContextBeanFactory效果是一样的,ApplicationContext属于BeanFactory的子类,它们的区别如下:

    • 继承关系和功能方面来说:Spring容器有两个顶级的接口:BeanFactoryApplicationContext。其中 BeanFactory提供了基础的访问容器的能力,而ApplicationContext 属于BeanFactory的子类,它除了继承了BeanFactory 的所有功能之外,它还拥有独特的特性,还添加了对国际化支持、资源访问支持、以及事件传播等方面的支持。
    • 从性能方面来说:ApplicationContext是一次性加载并初始化所有的Bean对象,而BeanFactory是需要哪个才去加载哪个,因此更加轻量。

    2. 通过Spring 上下文,获取某一个指定的Bean对象

    3. 使用Bean对象

    如果取多个Bean的话重复以上第2、3步骤。

    public class App {
        public static void main(String[] args) {
            //获取到Spring的上下文对象
            ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
            //2.从Spring中获取到业务对象
            //[2.1 通过bean的id来获取bean对象,需要类型强转]
    //        User user = (User)context.getBean("user");//和bean中的id相对应
            //[2.2 通过对象获取bean对象 优点:无需进行类型转换,缺点:对于多种对象的同一类型的bean获取会报错]
    //        User user = context.getBean(User.class);
            //[2.3 通过 id+类型 的方式来获取bean 优点:无1需进行类型转换, 2对于多个对象向用一个类的情况不会报错]
            User user = context.getBean("user",User.class);
            //3.使用业务对象
            user.PrintName("hello");
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    通过BeanFactory获取上下文对象:

    public class App2 {
        public static void main(String[] args) {
            //获取到Spring的上下文对象
    //        BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring-config.xml");
            BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
            //2.从Spring中获取到业务对象
            User user = beanFactory.getBean("user",User.class);
            //3.使用业务对象
            user.PrintName("world");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    @Async注解的坑,小心
    R语言因子分析全流程
    Flink SQL -- 反压
    (附源码)APP+spring boot校园购物网站 毕业设计 041037
    【Linux】进程状态(含僵尸进程,孤儿进程)
    RocketMQ源码分析(十四)之IndexFile
    渗透测试之分享常用工具、插件和脚本(干货)
    TypeError: bases must be types
    产品经理必备知识——API接口
    Java Pattern类简介说明
  • 原文地址:https://blog.csdn.net/dddddrrrzz/article/details/125746176