spring arch
ddatsh
2.5 6
6个模块
使用场景,典型应用
整合其他框架
远程使用场景
2.x以前是单一spring.jar,拆成n个项目(bundle),向ogsi靠拢
jdk5+开发和编译构建,不支持1.4
3.x
模块
- DAO/ORM/JEE等划归到一起,成为“数据访问/集成”部分
- Web层突出了自己的MVC(Servlet)和Portlet
- 核心容器增加表达式语言
- 测试放到整个架构中
典型全应用场景也相应变化
Spring middle-tier using a third-party web framework
Remoting usage scenario
新特性及功能增强 很多接口增加了泛型的支持,如 getBean() 后可以不用再转型了,任务执行器继承了 Java5 的 Executor
SpEL 配置文件/注解支持el JavaConfig + SpEL
对象到 XML的映射 从子项目移入核心包的特性,OXM,来自 WebServices 子项目,提供 JAXB、XmlBeans 以及 XStream 等方式的实现
全面的 REST 支持 基于 HttpClient提供RestTemplate 支持全功能的 REST 客户端
注解声明式验证框架 自动发现 HibernateValidator 的 jar,设置为对 JSR303 注解验证框架的实现
public class Person {
@NotNull
@Max(64)
private String name;
@Min(0)
private int age;
}
自带HSQL/H2支持,测试和演示时数据库,应该用起来更方便
-
SpEL
Bean 定义中用的表达式解析器,属性值中通过 #{…} 语法,引用嵌套的 Bean 结构(如其他 Bean 的属性),就像引用环境数据一样
-
对基于注解的组件的扩展支持
对配置类和注解工厂方法(JavaConfig)的增强,@Value,通过动态表达式 #{…},或静态占位符 ${…},注入配置值
-
强大的注解模型
允许通过元注解创建 “快捷” 注解,比如用自定义的注解类别,指代默认的作用域和事务特性
-
标准化的依赖注入注解
依赖注入 JSR-330 规范,用 @Inject 替代 @Autowired
-
基于注解的声明式模型验证:
自动发现和配置符合 JSR-303 规范的 Bean 验证提供程序(如 HiernateValidator4.0)
-
增强的绑定和注解驱动式格式化
格式化可以通过注解驱动,类似 JSR-303 的约束声明风格
-
-
REST 支持
SpringMVC 内置 REST 支持,@PathVariable ,内容协商(content negotiation)驱动的视图展示。RestTemplate 模板类,提供客户端 REST 支持
-
对象 XML 映射(OXM)
移入 Spring 框架核心的 Spring Web Services
-
下一代调度支持
新的任务调度器(TaskScheduler)和触发器(Trigger)机制提供一等的 cron 支持
Spring3.0 支持 Java5 和 Servlet2.4 及更新版本,兼容 JavaEE6 运行时环境(如 GlassFish v3)和 JPA2.0 等,但不再支持旧版 Java