JavaEE 进阶:Spring 的创建和使用
创始人
2024-02-03 06:17:22

文章目录

  • 前言
  • 一、创建 Spring 项⽬
    • 1、创建⼀个 Maven 项⽬
    • 2、添加 Spring 框架⽀持
    • 3、添加启动类
  • 二、存储 Bean 对象
    • 1、创建 Bean
    • 2、将 Bean 注册到容器
  • 三、获取并使⽤ Bean 对象
    • 1、创建 Spring 上下⽂
      • ① ApplicationContext
        • Ⅰ 注意事项
      • ② BeanFactory
      • ③ ApplicationContext VS BeanFactory(常⻅⾯试题)
    • 2、获取指定的 Bean 对象
      • ① 注意事项
      • ② getBean ⽅法的更多⽤法
        • Ⅰ 根据类型获取 Bean
        • Ⅱ 名称 + 类型获取 Bean
        • Ⅲ 区别
    • 3、 使⽤ Bean
  • 四、总结

前言

经过前⾯的学习我们已经知道了,Spring 就是⼀个包含了众多⼯具⽅法的 IoC 容器。既然是容器那么它就具备两个最基本的功能:

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

一、创建 Spring 项⽬

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

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

1、创建⼀个 Maven 项⽬

在这里插入图片描述
点击下⼀步:
在这里插入图片描述

2、添加 Spring 框架⽀持

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

org.springframeworkspring-context5.2.3.RELEASEorg.springframeworkspring-beans5.2.3.RELEASE

3、添加启动类

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

二、存储 Bean 对象

存储 Bean 分为以下 2 步:

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

1、创建 Bean

所谓的 Bean 就是 Java 语⾔中的⼀个普通对象:

public class User {public void sayHi(){System.out.println("Hi~");}
}

2、将 Bean 注册到容器

在创建好的项⽬中添加 Spring 配置⽂件 spring-config.xml,将此⽂件放到 resources 的根⽬录下,如下图所示:
在这里插入图片描述
Spring 配置⽂件的固定格式为以下内容(以下内容⽆需记忆,只需要保存到⾃⼰可以找到的地⽅就可以了,因为它是固定不变的):



接下来,再将 User 对象注册到 Spring 中就可以,具体操作是在 < beans > 中添加如下配置:(注意,这里的 class 是路径,一定要写全:包名+类名)




三、获取并使⽤ Bean 对象

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

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

1、创建 Spring 上下⽂

① ApplicationContext

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

		// 1.得到 Spring 上下文对象ApplicationContext context =new ClassPathXmlApplicationContext("spring-config.xml");

Ⅰ 注意事项

二者要保持一致:
在这里插入图片描述
否则就会报错:
在这里插入图片描述

② BeanFactory

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

		// 1.得到 Spring 上下文对象BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

③ ApplicationContext VS BeanFactory(常⻅⾯试题)

  • 共同点:都是用来获取 Spring 上下文对象。
  • 不同点:
    1. 继承关系和功能:ApplicationContext 属于 BeanFactory 的⼦类,ApplicationContext 具备了 BeanFactory 所有的功能和能力。
      BeanFactory 只具备最基础访问 Bean 的能力。ApplicationContext 具备更多的能力,比如国际化⽀持、资源访问⽀持等。
    2. 性能和加载方式:BeanFactory 按需加载,当需要使用 Bean 的时候再加载,更加轻量;ApplicationContext 一次性加载所有的 Bean。

2、获取指定的 Bean 对象

		// 2.从 Spring 中获取 bean 对象User user=(User) context.getBean("user");

① 注意事项

Bean 的 Id 要⼀⼀对应,如下图所示:
在这里插入图片描述
否则就会报错:
在这里插入图片描述

② getBean ⽅法的更多⽤法

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

  • 根据类型获取 Bean;
  • 名称 + 类型获取 Bean.

Ⅰ 根据类型获取 Bean

		// 2.2 根据一个 Class 参数获取 beanUser user = context.getBean(User.class);

Ⅱ 名称 + 类型获取 Bean

        // 2.3 根据 String(bean id) + Class 参数获取 beanUser user = context.getBean("user", User.class);

Ⅲ 区别

当有⼀个类型被重复注册到 spring-config.xml 中时,只能使⽤根据名称获取了,⽐如以下程序:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、 使⽤ Bean

public class App {public static void main(String[] args) {// 1.得到 Spring 上下文对象ApplicationContext context =new ClassPathXmlApplicationContext("spring-config.xml");// 2.从 Spring 中获取 bean 对象User user=(User) context.getBean("user");// 3.使用 beanuser.sayHi();}
}

四、总结

  1. 操作容器之前,先要有容器,所以先要得到容器。
  2. 存对象
    a. 创建 Bean(普通类)。
    b. 将 Bean 注册(配置)到 spring-confing.xml 中。
  3. 取对象
    a. 得到 Spring 上下⽂,并读取到 Spring 的配置⽂件。
    b. 获取某⼀个 Bean 对象。
    c. 使⽤ Bean 对象

操作流程如下图所示:
在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...