什么是Spring?

Java目前最流行的开发框架组合简称SSM:Spring,SpringMVC,MyBatis。有关Spring的“非人类语言”解释,请自行百度。
为什么说是“非人类语言”呢?
因为在我初学Spring的时候,网上查了很多资料,也翻看了一些书籍,对Spring的解释基本上都是用专业术语和抽象语言进行解释。如果你没学过Spring,看再多遍解释你还是不明白,所以这些解释都是非常不友好的。
今天我就现学现卖,说一下我对Spring框架的理解。

Spring:核心价值是IOC和AOP

  • IOC(Inversion of Control)控制反转。是通过Java反射原理去创建对象。实现了创建对象时的解耦合,提高代码的灵活性。Spring可以被理解为一个用于创建和管理对象的工厂,负责创建、管理所有JAVA对象。
    上面这些话翻译成人类语言就是说:
    之前我们用Java创建对象的时候都是用这种形式:

    new AClass();

    这种方式的问题是类名是写死在代码里面的,这种代码的耦合性太强。
    而在Spring里面,创建对象的时候是这样写的:

    xxx.getBean("AClass");

    类名是通过字符串传入的,这样耦合性大大降低。
    这一过程的实现,是由Spring基于Java的反射技术实现的,所以把Spring成为工厂,由这个工厂负责生产对象。

  • AOP(Aspect Oriented Programming)面向切面编程。底层基于动态代理机制实现。简单的来说就是如果系统需要增加某额外功能的时候,在不改变原有代码的情况下,可以通过AOP机制将新的功能织入到程序的切入点(切入点可以精确到方法)上。这是非常好的一种解耦合的机制。作用类似于JAVA拦截器和过滤器。
    我能想到的典型应用场景有两个:

    1. 客户之前委托第三方开发了某JAVA系统,现在委托给你做新功能添加。最稳妥的方式是以AOP的形式将新功能织入到现有系统中。这样不会影响之前的代码结构,后期也便于单独维护自己的代码。
    2. 假如我们想统计下当前所有Service层函数的执行时间,以便优化代码。不可能给每个函数单独增加统计时间的代码。最好的方法是通过AOP,将统计代码织入到函数切入点中。

如果看到这里还不明白,就不要再纠结概念问题了,直接学习技术,学完回过头来再看,就觉得上面的内容很好理解了。

Spring开发环境搭建

Spring开发环境搭建基于Maven。过程非常简单,只需要两步即可完成:

  1. 添加Spring依赖
    在Maven的pom.xml中添加如下依赖:

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.2.RELEASE</version>
    </dependency>
  2. 创建Spring配置文件applicationContext.xml
    在resources文件夹下新建applicationContext.xml文件,并将以下内容复制进去:

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

    applicationContext.xml在Eclipse里面只能自己创建空xml,然后撰写。在Intellij IDEA编辑器里面,可以直接从模板创建。或许这就是为什么越来越多的人转向Intellij IDEA的原因。

2 comments on “Spring简介及Spring开发环境搭建

发表评论

邮箱地址不会被公开。 必填项已用*标注