Spring项目的创建及存取Bean对象

目录 

前言

一、Spring项目的创建

1.1、创建一个maven项目

1.2、创建相应的目录和配置文件

1.3、在pom.xml中引入相应的spring依赖

1.4、重新加载一下maven项目

1.5、添加启动类 

1.6、一个很重要的注意事项!!!

二、存储Bean对象

2.1、创建Bean

2.2、存储Bean到Spring中

三、获取并使用Bean对象

四、ApplicationContext和BeanFactory区别

前言

        本篇博客主要介绍Spring如何创建一个Spring项目和如何往Spring中存放对象和取出对象,以及Beanfactory和ApplicationContext的区别。

一、Spring项目的创建

1.1、创建一个maven项目

 

1.2、创建相应的目录和配置文件

        我们需要在resource目录下创建一个Spring的配置文件,命名的话理论上我们是可以随便命名的,但是一般要取一个有意义的名字。这里我取的名字是spring-config.xml。

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"
       xmlns:content="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

1.3、在pom.xml中引入相应的spring依赖

<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.4、重新加载一下maven项目

        配置完成之后,可能会出现引入的依赖是标红的状况,这时候就是因为本地没有相应的jar包,要去远程的仓库上下载(一般配置国内源之后,在20-30s之内就可以下载下来)。 

1.5、添加启动类 

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

这里我们创建一个App类作为启动类(也就是包含main方法的类):

到这里之后,一个Spring项目就创建好了。

1.6、一个很重要的注意事项!!!

        要自己注意自己本地下载的JDK版本,在pom.xml中要把JDK的版本写对,否则有时候项目运行时会报错,且这种错误很难排查,不好确定。

二、存储Bean对象

        到这一步,我们已经将Spring项目创建出来了,这时候就可以开始编写Spring代码了,而在Spring中我们主要研究的是如何存储和取出对象。接下来开始介绍如何存储对象。

所谓的Bean对象,本质上就是Java中一个普通的对象。

2.1、创建Bean

所谓创建Bean,就是创建一个类,这个类的对象就称为Bean。

这里我们就创建一个简单的类来演示:我们创建一个UserService类,并写一个sayHi()方法:

2.2、存储Bean到Spring中

具体如何把对象存进去呢?接下来直接看代码:

总的来说:只要在spring配置文件中的beans标签中,加入一个<bean>标签中。

        其中id属性是用来设置这个Bean对象的名称,以后获取的时候需要根据名字来获取,class属性就是设置对应的对象的位置,包名开始到那个类的具体路径;

到这里,我们就成功的将一个类放入到Spring中了。

三、获取并使用Bean对象

        获取Bean对象的两个个步骤:①获取上下文对象(上下文对象也可以理解为就是拿到容器对象);②再通过上下文对象根据id或者类型再或者id+类型就可以获取到Bean对象。

第一步:获取上下文对象:

获取上下文对象的两种方法:

第一种:可使⽤ ApplicationContext,实现代码如下:

 第二种:使⽤ BeanFactory 来作为 Spring 的上下⽂:

第二步:使用上下文对象获取到Bean

        这里无论是使用ApplicationContext或者BeanFactory 获取到的上下文对象,都是可以通过getBean()方法来获取的,对于getBean()方法,可以传入以下不同的参数来获取到Bean对象:

第一种:只传入Bean对象的id,使用我们在spring配置文件中设置的Bean的id,来获取到Bean对象;(需要强制类型转换)

第二种:只传入Bean对象的类型,根据类型来获取Bean对象;(只能在同一个类型只存入一个对象的情况下使用该方法)

第三种:传入Bean对象的类型+id,根据类型来+id来获取;(推荐的写法,获取到唯一的Bean对象)

代码演示:

ApplicationContext的代码:

运行结果:

BeanFactory 的代码:

运行结果: 

四、ApplicationContext和BeanFactory区别

第一:ApplicationContext是BeanFactory的子类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性, 还添加了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持;

第二:从性能方面来说,ApplicationContext是在项目启动时,一次性的将所有的Bean对象都加载并初识化,而BeanFactory则是需要哪个就加载哪个,不需要的话就不去加载,是更加轻量的。

代码演示第二点区别:

        我们在原有代码的基础上再加入一个Student类,并且设置一个构造方法,存入容器中,如下所示:

        使用BeanFactory来获取UserService对象,没有获取Student对象,可以看到执行结果并没有去加载Student对象

        使用ApplicationContext,这时候我们不去获取任何的Bean对象,就获取一下上下文对象,我们可以看一下代码执行结果:

        从代码运行的结果上来看,可以看出只要我们有去获取上下文对象,ApplicationContext就会将所有的Bean对象初始化,但是如果连上下文对象都没有获取的话,只有存对象进去的话,是不会初始化存进去的Bean对象的,间接说明了加载所有Bean对象是ApplicationContext执行的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值