1.Spring简介
Spring是J2EE开发中一个很重要的框架。它主要用来解决下面两个问题。
解决大型软件开发中,对象之间由于复杂的依赖关系导致的牵一发而动全身的强耦合问题
.使用IoC思想解决。使用面向切面编程, 解决控制事务的繁琐操作
.使用AOP解决。
根据Spring解决的问题,和其对应的专业术语。我们也说Spring是一个轻量级的DI/IoC
和AOP容器
的开源框架
, 其提倡
以最小侵入式
管理应用中的代码,意味着我们可以随时卸载和安装Spring
.
接下去我们需要理解下Spring以下的专业术语,我就不抄写网络上的术语内容,并不是那么通俗,以我的理解如下。
1.2 Spring术语
应用程序(Application)
.对于JavaWeb来将,应用程序就是一个Web App.例如OA系统等.
框架
:框架是一种抽象, 其抽取了开发中可以重用和常见的功能的集合。
非侵入式设计
:非侵入式是编程中常见的一种设计方式,它保障了别人用你的框架,即使到时候不用了,也不会应用删除你的框架而要更改大量的代码, 可以不用的时候就直接删除,不会带来依赖问题。
从代码的角度来说.非侵入式,保证了不用继承框架的类.也就不会和依赖于框架的类.是一种解耦的设计、
轻量级和重量级
所谓的轻量级是相对于重量级来说。一般是由以下几个特点.
非侵入式
、资源占用少
、部署简单
、易用
.所以所谓的轻是在有重的前提下的对比。
POJO
:Plain Ordinary Java Object / Pure Old Java Object
.所谓的POJO是不继承
Java的任何类
,不实现
任何的接口
,但可以
包含业务逻辑
和持久化逻辑
容器
:容器主要用来
存放对象
.管理对象的整个生命周期
.比如Tomcat是Servlet/JSP容器
.
1.3 Spring的框架构架
之所以要了解Spring构架是在学习之前我们要对一样事务大体的骨架有一个了解。在介绍Spring的构架之前,我们简要的说下Spring的优势。
Spring的优势
低侵入、低耦合
声明式事务管理
方便集成其他框架
Spring框架包含JavaEE 三层的每一层的解决方案(一站式)
构架
从上之下。主要分为
数据访问层(Data Access)
。Web层
。AOP模块
。核心容器层(Core Coniainer)
。Beans、Core、Context、SpEL测试层(Test)
。
Spring框架版本
这里简要介绍下Spring各个版本的变化。其中Spring2.5是变化最大的一个版本
,其已经完成了大部分Spring的核心功能。而后续版本都是在其上增加新的语法支持等。
Spring2.5
:驱动编程
、支持SimpleJdbcTemplate的命名参数操作Spring3.x
:全面支持泛型
不支持JDK 1.4。支持SpEL、支持WebService的OXMSpring4.x
:支持Java8
、支持JavaEE6规范
、泛型限定式依赖注入
、对Hiberante4的集成
和事务管理
提供更好的管理方案.
介绍完Spring的一些基础常识,我们看是以Spring来写一个最简单的HelloWorld,学习基于Spring搭建应用的基本步骤。
2. 基于Spring如何编写程序
关于Spring插件
如果不是用Spring官方提供的Eclipse。需要自己安装SIS插件.
Help-->Install New Software-->work with 中输入http://dist.springsource.com/release/TOOLS/update/e4.6/, 勾掉Contact All update ,回车等待片刻,选中带spring IDE的四项,一直next直到完成,重启eclipse即可。如下图
2.1 基于Spring的HelloWorld编写步骤
导入jar包
。并build到classpath。spring-beans-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
commons-logging-1.1.3.jar
将我们的控制权转交给Spring去控制
创建bean的xml配置文件
。注册bean到容器
, 进行属性注入
。注册HelloWorld到IoC容器中。
启动IoC容器, 根据Bean的id
和Bean的类型
, 从Ioc容器中取出对应的bean实例.bean的获取方式又有下面三种.一般我们使用最后一种
,因为最后这种既能获取到bean,又无需强转
.根据ID或者name获取bean.
ioc.getBean(String)
根据类型获取bean.
ioc.getBean(Class)
根据ID和类型获取bean.
ioc.getBean(String, Class)
目录结构
作者:sixleaves
链接:https://www.jianshu.com/p/282dcae0b4e3