【浅学Java】Spring的创建和使用

发布于:2022-11-07 ⋅ 阅读:(8) ⋅ 点赞:(0) ⋅ 评论:(0)

1. 创建 Spring 项⽬

1.1 创建一个普通的maven项目

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

<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>

1.3 添加启动类

在Java目录下添加,启动类的名字不固定,注意使用大驼峰
在这里插入图片描述

2. 存储Bean对象

2.1 创建Bean(即创建对象)

在这里插入图片描述

2.1 将Bean注册到容器

在这里插入图片描述

<?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">
    <bean id="user" class="com.myclass.User"></bean>
</beans>

3. 获取并使用对象

基本流程

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

  1. 得到 Spring 上下⽂对象,因为对象都交给 Spring 管理了,所以获取对象要从 Spring 中获取,那么
    就得先得到 Spring 的上下⽂。
  2. 通过 Spring 上下⽂,获取某⼀个指定的 Bean 对象。
  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.使用bean对象
        user.sayHi();
    }
}

获取Spring上下文的两种方式

  1. 使用ApplicationContext 获取Spring上下文
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
  1. 使用BeanFactory 说去Spring上下文
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

ApplicationContext 和 BeanFactory 的效果是一样的,ApplicationContext 属于是 BeanFactory 的子类,他们有如下区别:

  1. 继承关系和功能⽅⾯来说:⽽ ApplicationContext 属于 BeanFactory 的⼦类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性,还添加了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持。
  2. 从性能⽅⾯来说:ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,⽽ BeanFactory是需要那个才去加载那个,因此更加轻量,即ApplicationContext 属于是饿汉模式,BeanFactory属于是懒汉模式。

获取Bean对象的方式

  1. 通过id字符串来获取
User user = (User)context.getBean("user");
  1. 通过类名来获取
User user = context.getBean(User.class);
  1. 通过 id 和类名来获取(建议使用)
User user = context.getBean("user", User.class);

注意:
在这里插入图片描述

当一个类被注册到Spring中两次时,就不能使用第二种方式了,因为通过User.class是不能确定是两个对象中的哪一个。

因此建议使用第三种方式来获取类。

4. 操作总结

在这里插入图片描述

  1. 创建Spring对象
  1. 创建一个普通的maven项目
  2. 引入Spring相关的依赖
  3. 添加启动类
  1. 存储Bean对象
  1. 创建Bean对象
  2. 将创建好的对象注册到Spring容器中
  1. 使用并获取对象
  1. 获取Spring上下文
  2. 获取指定bean对象
  3. 使用Bean对象