> 文章列表 > 【JavaEE进阶】——第三节.Spring core项目的创建和使用

【JavaEE进阶】——第三节.Spring core项目的创建和使用

【JavaEE进阶】——第三节.Spring core项目的创建和使用

文章目录

前言

一、创建Spring项目

1.1 创建一个Maven项目

1.2 添加Spring依赖

1.3 添加启动类 

二、将对象储存到Spring

2.1 创建一个Bean对象

2.2 将Bean对象注册到Spring 

三、从Spring中取出bean对象

3.1 实例分析

3.2 getBean方法分析 

3.3 一点补充

四、相关面试题

总结


前言

经过上一篇博客我们已经知道了Spring是一个具有众多工具方法的IoC容器,既然是容器。那么就有这两个基本的功能。
 

  • 将对象存到容器中
  • 从容器中取出对象

在Spring中,对象也被称为Bean,所以后⾯咱们再遇到对象就以 Bean 来称呼;

由此整个项目的创建和使用大概有以下三步:

1、创建Spring项目;

2、存Bean;

3、取Bean;


一、创建Spring项目

分为下面几个小步骤,就让我们一起看看吧!!!

1、新建一个普通Maven项目

2、添加依赖——Spring 框架⽀持(spring-context、spring-beans)

3、添加启动类(因为我们这里是Spring core项目,不是web项目,需要我们自己手动创建启动类)


1.1 创建一个Maven项目

Spring的本质其实还是一个Maven项目,创建Maven项目和我们之前servlet项目的创建有些相似



 



1.2 添加Spring依赖

在项目中的pom.xml中添加Spring的依赖(可直接复制,dependency可从Maven中央仓库获取)

代码:

 <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 添加启动类 

 

二、将对象储存到Spring

步骤概述:

1、创建一个Bean对象

2、将Bean对象注册到Spring(使用Spring配置文件进行注册)


2.1 创建一个Bean对象

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


2.2 将Bean对象注册到Spring 

首先我们注册要用到Spring的配置文件,在配置文件中进行注册。

spirng的配置文件(可直接复制):

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

注意:

我们这里的配置文件是并不是最终版——我们后面在用注解来进行更高效的存取Bean对象时,我们的配置文件还会变。

如下图:

三、从Spring中取出bean对象

3.1 实例分析


3.2 getBean方法分析 


从上图可以看出getBean方法是可以传多个参数类型的。

那么这些不同参数类型有什么区别吗?一起来看看吧!

方法一:

因为需要强转,有时候可能会出现一些问题;


方法二:  


 方法三(推荐使用的方法) 


3.3 一点补充

同一个User类在spring注册两次;

 单例模式 


四、相关面试题

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

 ApplicationContext 和 BeanFactory 效果是⼀样的,ApplicationContext 属于 BeanFactory 的⼦类.
区别如下:

总结