天天看点

Spring框架的详解(第一篇)

  • 讲在最开始的话
这篇关于Spring框架仅是个人对其的理解,如有不足之处,欢迎提出改正,但是勿喷!一千个人有一千种看法。另外在本篇的讲解中我搭配了几张自己画的草图,虽然丑,但是比没有强。

1. 概念

1.Spring框架被称之为是一站式框架。
           
讲解:Spring在其个各种介绍中都提出他是一种一站式的开发框架,为什么这么说?这是因为Spring其本质就是一个容器,容器本身是没有多少功能的,但是这个容器是我们在开发过程中帮我们管理和创建对象的。而这个容器基本啥都能够装并且所装载的对象是具备一定的功能的。所有我们把Spring称之为是一站式框架。在学习Spring的时候,你只要记住他的本质就是一个容器就可以了。其他的什么轻量级框架,可以提高开发效率这么文字都是废话。只要是框架,基本都是在说自己是一个轻量级框架。
2.Spring的两大核心思想技术
	* IOC 控制翻转
	* AOP 面向切面
           
讲解:
  • IOC:控制反转
讲解:在以往的项目开发过程中,对象的框架和使用都是由开发人员自行创建并且调用的。这样做不利于后期的维护,而Spring为了解决这个问题,就提出了IOC控制反转的技术思想,就是在日常开发的过程中对象的创建和使用都交给Spring来统一管理。如果你想理解控制反转是啥意思,你只要记住Spring的IOC控制反转就是把对象的创建管理权限交给Spring来操纵就可以了。
  • AOP:面向切面
讲解:在我看来就八个字“横向重复,纵向抽取”。
Spring框架的详解(第一篇)
在以往的service中我们管理事务,是每个service方法都要添加,无形之中而我们的日常开发中增加了代码量,但是Spring为了简化我们对事务的管理,给我们提供了一项技术,而这项技术就是AOP技术,纵向抽取事务的相同,横向想一把刀一样直接切入我们的方法中,把重复的代码抽取唯一在注入到我们的方法之中,这里我可能表达不是很在准确,但是配合图片,应该都能看懂我所说的八个字“横向重复,纵向抽取”的基本含义。

2. 快速入门

2.1基本环境的搭建(eclipse)

注意:这里我就不介绍关于IDEA的环境搭建了,因为IDEA关于Spring环境的搭建还是很智能化的,你直接在项目创建过程中选择Spring框架,他会自动搭建好Spring的基础环境。
  • 1.创建项目
    Spring框架的详解(第一篇)
  • 首先找到自己电脑上的eclipse,然后双击打开。
    Spring框架的详解(第一篇)
  • 在文件中选择新建目录下的web动态工程即可。
    Spring框架的详解(第一篇)
  • 上面内容填好之后疯狂下一步或者直接点击完成即可。
    Spring框架的详解(第一篇)
  • 搭建好项目之后,就是创建Spring框架的基础环境了
  • 2.导包(核心包4个+2个日志jar包)
    * spring-beans-4.2.4.RELEASE.jar
       	* spring-context-4.2.4.RELEASE.jar
       	* spring-expression-4.2.4.RELEASE.jar
       	* spring-core-4.2.4.RELEASE.jar
       	* com.springsource.org.apache.log4j-1.2.15.jar
       	* com.springsource.org.apache.commons.logging-1.1.1.jar
               
    上面的jar包是Spring的基础包,必须导入!
    Spring框架的详解(第一篇)
    把需要的jar包找到赋值粘贴到lib目录下即可
  • 3.创建Spring的配置文件
讲解:关于Spring的配置文件,虽然取名是没有强制要求的,你可以根据自己的喜欢去取名,但是我一般都是取名为“applicationcontext.xml”并将其放在src目录下的。
Spring框架的详解(第一篇)
  • 输入Spring文件的名称之后 直接点击完成即可。
  • 导入约束,流程如下:
    Spring框架的详解(第一篇)
    Spring框架的详解(第一篇)
    Spring框架的详解(第一篇)
讲解:注意最后一张图片里,key位置后面要补入/spring-beans-4.2.xsd,这一步不要问为什么?没有理由照做就对了。
Spring框架的详解(第一篇)
Spring框架的详解(第一篇)
Spring框架的详解(第一篇)
Spring框架的详解(第一篇)
  • 下面的图片是重新点击ADD,在进入这个视图中
Spring框架的详解(第一篇)
Spring框架的详解(第一篇)
Spring框架的详解(第一篇)

到这里约束文件就导入成功了。

讲解:这里注意一件事,这次的约束文件导入之后,在最后一张图片上prefix这个属性值我没有填写,也就是说我没有给我们刚才导入的约束文件取名,但是之后如果还需要导入相关约束文件都必须取名。一定要记住!!!不然出问题,别说是看我的Spring讲解篇章来学习导入的,我不背锅!

2.2 DI:依赖注入

在此之前,我已经详解的讲解了关于Spring的IOC和框架的基础环境搭建,现在讲解一下DI:依赖注入。DI的存在前提条件就是IOC的思想,Spring在管理项目的对象时,有三种方式可以设置所需要管理的对象时哪一个,并且对所管理的对象进行赋值操作,也可以说成是所管理的对象的属性输入,这里我只讲了其中一种也是最推荐的一种,其他的就不在细说了。

set方式注入(推荐)
           
讲解:set方法注入,需要所管理的对象用于set方法,如下图:
Spring框架的详解(第一篇)
然后在Spring的配置文件中使用

<bean>

子标签来配置所需管理的对象,并且注入属性
Spring框架的详解(第一篇)
在上面图片中有几个属性是我们需要了解的。

上面我们既搭建好了环境,有创建了两个实体类的对象,并且通过set方法将其提交给了Spring这个框架去管理。这里我们就来使用一下这两个类来测试一下。

Spring框架的详解(第一篇)

控制台成功打印信息。

2.3 Spring的容器

在刚才的测试代码中 我们发现我是先创建了一对象applicationcontext,而这个对象就是Spring提供给我们用来操作他所管理的对象信息的一个接口,而这个对象就是一个接口。并且拥有两个实现类。这两个实现类的具体区别如下:

ClassPathXmlApplicationContext:从类路径中加载Spring的配置文件
           
FileSystemXmlApplicationContext:从本地磁盘中加载Spring的配置文件
           

这两个实现类在实际使用过程中,我们要注意他们的区别。

讲解:这里我要讲解一个小知识,可能有些关于Spring文档中还介绍了BeanFactory这个类。说到这个,我一点都不想多讲,因为怎么说呢?BeanFactory这个类已经过时很久了,忘了他吧,applicationcontext表示我可以偷电瓶车养你。

3. Spring的相关配置

3.1 标签配置

在上诉的内容中,我们可以看到在Spring的配置文件中

<bean>

的标签中有几个属性。而接下来,我就说一下关于这些属性的用法和含义。

  • name属性

    就是给Sping容器中所对应的管理对象起一个名称,后期需要使用他的时候可以通过这个名字来调用它。

  • class属性

    所管理对象的路径。

  • <property>

    子标签用来注入所管理对象的属性值,至于他内部的属性,见名知意,我就不多说了。

3.2 Spring的注解配置

上面我说到Spring通过配置文件的方式来配置Bean的管理,接下来我就要说重点中重点了,注解配置。为什么说重点中的重点呢?

因为我觉得这种配置方式是最简单,最省事省力的。当然这仅是个人看法。

  • 1.导包
  • 2.导入约束文件

    文件的导入方式,我在前面已经说的很清楚了,就不多重复了,只是导入的约束文件换成了

    spring-context-4.2.xsd

  • 3.开启注解配置
    Spring框架的详解(第一篇)
    在配置文件中输入

    <context:component-scan base-package="需要进行注解配置的包路径"></context:component-scan>

    在所需要交给Spring管理的对象上添加注解即可完成。
@Component
           

在@Component()原始注解上有衍生了三种注解,其功能都是一样的,只是名称不一样而已。方便开发人员识别所注解的是对象属于哪一层

@Controller			:WEB层
@Service			:Service层
@Repository		:持久层(数据访问层) 
           

对于属性的注入直接在需要注入属性值的内部元素上加

@Value注解即可

Spring框架的详解(第一篇)
讲解:如果所需要交给Spring管理的对象中引用了另一个对象,可以使用

@Resource

根据name属性直接指名道姓的注解这个对象是哪一个。

3.3 Spring的Bean(容器)管理方式的区别

Spring框架的详解(第一篇)

未完待续。。。。剩下部分将放在Spring框架的详解(第二篇)中

2019年8月24日凌晨1点21分整理完成。

继续阅读