Spring 创建和使用

简介: spring-core的创建与使用

 目录

 

1.创建 Spring 项目

1.1 创建⼀个 Maven 项⽬

1.2 添加 Spring 框架支持

1.3 添加启动类

2.存储 Bean 对象

2.1 创建 Bean

2.2 将 Bean 注册到容器

3.获取并使用 Bean 对象

3.1 创建 Spring 上下⽂

ApplicationContext VS BeanFactory(常⻅⾯试题)

3.2 获取指定的 Bean 对象

3.2.1 注意事项

3.2.2 getBean ⽅法的更多⽤法

3.3 使用 Bean

4.总结


Spring 是⼀个包含了众多⼯具⽅法的 IoC 容器。既然是容器那么 它就具备两个最基本的功能:

    • 将对象存储到容器(Spring)中;
    • 从容器中将对象取出来。

    1.创建 Spring 项目

    使⽤ Maven ⽅式来创建⼀个 Spring 项⽬,创建 Spring 项⽬和 Servlet 类似,总共分为以下 3 步:

      1. 创建⼀个普通 Maven 项⽬。
      2. 添加 Spring 框架⽀持(spring-context、spring-beans)。
      3. 添加启动类。

      1.1 创建⼀个 Maven 项⽬

      image.gif编辑

      1.2 添加 Spring 框架支持

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

      <dependencies>
       <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context</artifactId>
       <version>5.2.3.RELEASE</version>
       </dependency>
       <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-beans</artifactId>
       <version>5.2.3.RELEASE</version>
       </dependency>
      </dependencies>

      image.gif

      从上述配置中可以看出,添加的框架有 spring-context:spring 上下⽂,还有 spring-beans:管理对象的模块。

      写入完成后记得刷新。

      image.gif编辑

      1.3 添加启动类

      最后在创建好的项⽬ java ⽂件夹下创建⼀个启动类,包含 main ⽅法即可:

      image.gif编辑

      2.存储 Bean 对象

      存储 Bean 分为以下 2 步:

        1. 存储 Bean 之前,先得有 Bean 才⾏,因此先要创建⼀个 Bean。
        2. 将创建的 Bean 注册到 Spring 容器中。

        具体实现如下。

        2.1 创建 Bean

        所谓的 Bean 就是 Java 语⾔中的⼀个普通对象,实现代码如下:

        image.gif编辑

        2.2 将 Bean 注册到容器

        在创建好的项⽬中添加 Spring 配置⽂件 spring-config.xml,将此⽂件放到 resources 的根⽬录下,如下图所示:

        image.gif编辑

        Spring 配置⽂件的固定格式为以下内容

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        </beans>

        image.gif

        接下来,再将 User 对象注册到 Spring 中就可以,具体操作是在 <beans> 中添加如下配置:

        <beans>
                <bean id="user" class="org.example.User"></bean>
            </beans>

        image.gif

        3.获取并使用 Bean 对象

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

          1. 得到 Spring 上下⽂对象,因为对象都交给 Spring 管理了,所以获取对象要从 Spring 中获取,那 么就得先得到 Spring 的上下⽂。
          2. 通过 Spring 上下⽂,获取某⼀个指定的 Bean 对象。
          3. 使⽤ Bean 对象。

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

          3.1 创建 Spring 上下⽂

          Spring 上下⽂对象可使⽤ ApplicationContext,实现代码如下:

          // 1.得到 Spring 的上下⽂对象,创建的时候需要配置 Spring 配置信息
          ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");

          image.gif

          除了 ApplicationContext 之外,我们还可以使⽤ BeanFactory 来作为 Spring 的上下⽂,如下代码所示:

          BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

          image.gif

          ApplicationContext 和 BeanFactory 效果是⼀样的,ApplicationContext 属于 BeanFactory 的⼦ 类,它们的区别如下。

          ApplicationContext VS BeanFactory(常⻅⾯试题)

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

            PS:⽽ ClassPathXmlApplicationContext 属于 ApplicationContext 的⼦类,拥有 ApplicationContext 的所有功能,是通过 xml 的配置来获取所有的 Bean 容器的。

            3.2 获取指定的 Bean 对象

            // 2.加载某个 bean
            User user = (User) context.getBean("user");

            image.gif

            3.2.1 注意事项

            Bean 的 Id 要⼀⼀对应,如下图所示:

            image.gif编辑

            3.2.2 getBean ⽅法的更多⽤法

            getBean() ⽅法有很多种重载⽅法,我们也可以使⽤其他⽅式来获取 Bean 对象,⽐如以下这两种:

            根据类型获取 Bean:

            User user1 = context.getBean(User.class);

            image.gif

            或以下这种,名称 + 类型获取 Bean:

            User user2 = context.getBean("user",User.class);

            image.gif

            ⼆者的区别:当有⼀个类型被重复注册到 spring-config.xml 中时,只能使⽤根据名称获取了,⽐如以下程序:

            image.gif编辑

            image.gif编辑

            以上场景就会导致程序报错,如下图所示:

            image.gif编辑

            3.3 使用 Bean

            public class App {
             public static void main(String[] args) {
             // 1.得到 Spring 上下⽂对象
             ApplicationContext context =
             new ClassPathXmlApplicationContext("spring-config.xml");
             // 2.加载某个 bean
             User user = (User) context.getBean("user");
             // 3.调⽤相应的⽅法
             System.out.println(user.sayHi("Java"));
             }
            }

            image.gif

            4.总结

            1. 操作容器之前,先要有容器,所以先要得到容器。

            2. 存对象

                   a. 创建 Bean(普通类)。

                   b. 将 Bean 注册(配置)到 spring-confing.xml 中。

            3. 取对象

                   a. 得到 Spring 上下⽂,并读取到 Spring 的配置⽂件。

                   b. 获取某⼀个 Bean 对象。

                   c. 使⽤ Bean 对象。

            操作流程如下图所示:

            image.gif编辑


            相关文章
            |
            5月前
            |
            缓存 Java 数据库连接
            Spring c3p0配置详解
            【7月更文挑战第13天】
            141 1
            |
            7月前
            |
            XML Java Maven
            Spring的创建
            Spring的创建
            61 2
            |
            7月前
            |
            Java Maven Spring
            创建一个spring boot的3种方式
            创建一个spring boot的3种方式
            58 6
            |
            7月前
            |
            Java 程序员 Maven
            Spring(Spring/Springboot 的创建) 基础
            Spring(Spring/Springboot 的创建) 基础
            |
            7月前
            |
            存储 Java Maven
            【Spring】——Spring的创建与使用(二)
            【Spring】——Spring的创建与使用
            79 0
            【Spring】——Spring的创建与使用(二)
            |
            7月前
            |
            XML Java Maven
            【Spring】——Spring的创建与使用(一)
            【Spring】——Spring的创建与使用
            64 0
            【Spring】——Spring的创建与使用(一)
            |
            存储 安全 Java
            《Spring安全配置》
            《Spring安全配置》
            77 1
            |
            IDE Java Maven
            手动创建Spring Boot 2.x项目
            手动创建Spring Boot 2.x项目
            299 0
            手动创建Spring Boot 2.x项目
            |
            XML 存储 Java
            Spring 创建和使用
            Spring 是一个广泛用于构建企业级 Java 应用程序的开源框架。它提供了许多功能和组件,用于简化开发、测试和部署过程。本文是一个简单的步骤指南,介绍如何创建和使用 Spring 框架。
            |
            存储 XML Java