spring创建和使用


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

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

在 Java 语⾔中对象也叫做 Bean,所以后⾯咱们再遇到对象就以 Bean 著称

创建Spring项目

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

  1. 创建⼀个普通 Maven 项⽬。

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

  3. 添加启动类。

创建⼀个 Maven 项⽬

image-20220707161312112

点击下⼀步:

image-20220707161519722

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

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

添加完毕之后,别忘记点击刷新按钮

image-20220707161743264

添加启动类

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

public class App {
    public static void main(String[] args) {
        System.out.println("hello Spring");
    }
}

image-20220707161957407

存储Bean对象

存储 Bean 分为以下 3(或2) 步:

  1. 如果是第一次添加,现在Spring项目中添加配置文件,非第一次此步骤可省略。

  2. 先要创建⼀个 Bean。

  3. 在配置文件中将需要保存到spring中的 Bean 对象进行注册

具体实现如下。

添加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-20220707162745177

image-20220707162948049

创建Bean对象

image-20220707163149218

将bean对象通过配置文件注册到spring中

在配置文件spring-config.xml的beans中,添加bean

image-20220707163641480

从spring中读取bean并使用

读取操作分三步:

  1. 先得到spring的上下文对象(代表spring)
  2. 再通过上下文对象提供的方法获取咋们自己需要使用更多bean对象
  3. 可以使用bean对象

image-20220707165016340

ApplicationContext VS BeanFactory

上图中,使用ApplicationContext得到spring上下文,但是这只是其中一种方法,我们还可以使用BeanFactory来得到spring的上下文

image-20220707165807806

image-20220707165814014

ApplicationContext和BeanFactory有什么区别

  • 相同点:都可以实现从容其中获取bean,都提供了getBean方法
  • 不同点:
    • 继承关系:ApplicationContext属于BeanFactory的子类。BeanFactory只提供了基础访问bean的方法,ApplicableContext除了拥有BeanFactory所有的功能之后,还提供了更多的方法实现。比如了对国际化⽀持、 资源访问⽀持、以及事件传播等⽅⾯的⽀持。
    • 性能方面:ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,⽽ BeanFactory 是需要那个才去加载那个,因此更加轻量。

getBean ⽅法的更多⽤法

  1. 使用 bean name 获取bean

image-20220707170638148

  1. 根据bean type获取bean

image-20220707170733127

写法简单,但容易出问题。

因为是根据类型获取对象,如果spring中只有一个类型对象的时候,毫无问题,但是如果注册时候一个对象注册多次就会出现问题

image-20220707171017153

  1. 根据bean name 和bean type 获取bean

image-20220707171255207

第一种,如果返回为null,同时强制类型转换,此时就会出现问题,第三中不会出现这样的问题,所以说,推荐使用第三种

总结

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

  2. 存对象

    1. 创建 Bean(普通类)。
    2. 将 Bean 注册(配置)到 spring-confing.xml 中。
  3. 取对象

    1. 得到 Spring 上下⽂,并读取到 Spring 的配置⽂件。
    2. 获取某⼀个 Bean 对象。
    3. 使⽤ Bean 对象

操作流程如下图所示:

image-20220707171617946

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值