spring:快速入门
Spring概述
Spring是一个开源框架,Spring是为简化企业级应用开发而生的,使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能;Spring是JavaEE/JavaSE的一站式框架。JavaEE在开发过程中会将服务器划分为三层:Web层,业务逻辑层,持久层。Spring对于这三层都提供了较为完善的解决方案:在Web层提供了SpringMVC;业务逻辑层提供了用于Bean管理的SpringIOC和事务;持久层提供了JDBC Template,或者与Mybatis等ORM框架进行整合。
优点:
接下来是Spring的模块(本文以Spring4为例进行学习介绍):
Spring Ioc实现原理
下载Spring
Spring官网并不直接提供Spring的下载,Spring现在托管在GitHub上,相应的下载步骤如下:你可以点击这里查看文章下载Spring,或者直接看下面的步骤:
1、进入Spring官网 -> PROJECTS -> SPRING FRAMEWORK:
2、点击GitHub的图标,进入GitHub:
3、进入Spring仓库后,继续按照图示操作进行:
接着点击org -> springframework -> spring,选择要下载的版本,展开它:
Spring目录分析
docs文件夹里是一些html文件,是Spring的API文档。libs文件夹里是Spring的jar包,一共63个。
正如你所看见的文件是三个一组,其中.RELEASE.jar
用于项目中,.RELEASE-javadoc.jar
是该jar包的说明文档,.RELEASE-source.jar
是该jar包的源码,也就是说真正在项目中用的就只有21个。
虽然有这么多包,但是只有4个是Spring的基础包,分别对应Spring核心容器的4个模块,注意它们是Spring项目必须的。
spring-core-5.1.8.RELEASE.jar
是Spring的核心工具类,其它jar包是建立这个包基础上的,都要用到这个包中的类;spring-beans-5.1.8.RELEASE.jar
通常用于配置、创建、管理Bean,同时负责Ioc控制反转和DI依赖注入;spring-context-5.1.8.RELEASE.jar
用于提供在基础IoC上的扩展服务spring-expression-5.1.8.RELEASE.jar
用于提供对Spring表达式语言的支持。
另外Spring核心容器依赖第三方的commons.logging.jar
包,需要自己去下载这个包;通常也会添加log4j包用于开发时的代码调式和测试。
总结起来就是:使用Spring时,需要把Spring自带的21个jar包+1个第三方的commons.logging.jar
包添加到项目中即可。
Spring Ioc快速入门
下载安装Spring开发包–>复制Spring jar包至工程–>理解IOC控制反转和DI依赖注入–>编写Spring核心配置文件–>在程序中读取Spring配置文件,并通过Spring获得Bean,最终实现操作Bean的目的。
入门小demo
使用IDEA创建一个webapp项目,接着配置pom.xml:
1 | <dependencies> |
接着在main包下面新建一个java源程序包,然后在main包中新建com/envy.service
文件包,里面新建一个接口UserService.java
的文件:
1 | public interface UserService { |
为了实现这个接口,在该service包中新建一个UserServiceImpl.java
的文件:
1 | public class UserServiceImpl implements UserService { |
接着在main包下面新建一个与java同级的test文件夹,该文件夹是一个测试目录,然后在该test包中新建com/envy.test
文件包,里面新建一个测试文件UserServiceTest.java
:
1 | /** |
上面是传统的开发模式,如果单纯的需要使用sayHello方法,那么可以直接调用被注释的两行代码(只需要让接口的引用指向实现类的引用即可,无需创建实现类对象);如果是需要获取对象的属性,那么需要创建一个实现类对象,然后使用setter和getter方法分别去赋值和获值,这是非常麻烦的,因为涉及到修改实现类中的原始代码。
但是如果你是用SpringIOC 和DI的话,就需要按照如下进行操作:
第一步:在resource包中新建一个applicationContext.xml
文件,里面的代码如下:
1 | <?xml version="1.0" encoding="UTF-8"?> |
最后在UserServiceTest测试文件中写入以下代码:
1 | /** |
注意到没有,需要使用属性只需在bean中进行property设置,然后在测试文件中直接调用实现类对象的getter方法就可以。更重要的是我们的Bean对象不再是自己来创建了,而是通过Spring来创建。