1、简洁有力,干掉了j2ee容器层特别是ejb,spring在rod Johnson十几年前一个人单挑j2ee体系开始,到十年前开始大行其道至今,基本上是java开发领域的事实标准。从此大部分开发者去掉了ejb的束缚,不需要强依赖容器的包袱,基本上一个系统一些个jar或者一个war就搞定了。装配框架,web框架,orm框架,这个web开发套件里,web框架先后兴衰了无数种(Struts,webwork,jsf,tapestry,wicket,turbine等等),orm主流也有hibernate和mybatis,装配这一块spring还没有动摇过。

 

  2、系统层面的组装:这个是spring beans的基本功能,通过一些明确的契约方式装配好整个系统(xml也好,annotation也好,现在的spring-boot-starter也好),统一管理了各个对象的生命周期,以及运行期对象间的关系。

 

  3、AOP与事务控制:AOP在装备和beans管理的基础上,实现了前所未有的编程视角,以切面方式控制系统的各个处理环节,提供了很多优雅的解决办法,特别是tx,日志,intercepter等。

 

  4、足够灵活:从装配这一层来看,spring基本对业务是非侵入性的,业务代码这一块不会直接跟spring的任何库有直接依赖关系,即去掉spring,重新写点代码组装一下对于简单工程完全是没有问题的。并且很多spring现有的东西,都是可以自定义的,比如觉得xml的bean方式配置不爽,可以自己定义namespace handler和parser,甚至用spring-xmlbeans不需要xsd就能按bean本身的结构自动装配。比如可以自定义一堆annotation,然后用AOP去处理自己想要的功能。

 

  5、生态体系化支撑:除了核心的库和spring-boot,还有spring-test,spring-cache,spring-task,spring-ws,spring-jms,spring-data,spring-integration,spring-batch,spring-security,springmvc。。。等等

 

  6、spring更是一种研发模式,而不仅仅是一个框架:基本上用了spring,就选了一种对项目开发和运行视图的一个基础划分结构,怎么分层便于装配,怎么处理不同层次的关系、怎么处理通用性的一些非功能性需求等等,配合业务模块和功能的划分,把项目结构清晰的确定下来便于任务估计、工作分配和大规模分工协作。

Spring生态的更多相关文章

  1. Spring生态研习【二】:SpEL(Spring Expression Language)

    1. SpEL功能简介 它是spring生态里面的一个功能强大的描述语言,支在在运行期间对象图里面的数据查询和数据操作.语法和标准的EL一样,但是支持一些额外的功能特性,最显著的就是方法调用以及基本字 ...

  2. Spring生态研习【一】:定时任务Spring-task

    本系列具体研究一下spring生态中的重要或者常用的功能套件,今天从定时任务开始,主要是spring-task.至于quartz,下次找个时间再总结. 我的验证环境,是SpringCloud体系下,基 ...

  3. Spring生态简介

    目录 概述 项目说明 主要项目 社区项目 保留项目 最后总结 概述 做Java开发的人一提起Spring,首先在脑海中浮现出的就是"IoC","AOP",&qu ...

  4. 再也不担心写出臃肿的Flink流处理程序啦,发现一款将Flink与Spring生态完美融合的脚手架工程-懒松鼠Flink-Boot

    目录 你可能面临如下苦恼: 接口缓存 重试机制 Bean校验 等等...... 它为流计算开发工程师解决了 有了它你的代码就像这样子: 仓库地址:懒松鼠Flink-Boot 1. 组织结构 2. 技术 ...

  5. 懒松鼠Flink-Boot(Flink+Spring):一款将Flink与Spring生态完美融合的脚手架工程

    目录 你可能面临如下苦恼: 接口缓存 重试机制 Bean校验 等等...... 它为流计算开发工程师解决了 有了它你的代码就像这样子: 仓库地址:懒松鼠Flink-Boot 1. 组织结构 2. 技术 ...

  6. Spring生态研习【四】:Springboot+mybatis(探坑记)

    这里主要是介绍在springboot里面通过xml的方式进行配置,因为xml的配置相对后台复杂的系统来说,能够使得系统的配置和逻辑实现分离,避免配置和代码逻辑过度耦合,xml的配置模式能够最大限度的实 ...

  7. Spring生态研习【三】:Spring-kafka

    1. 基本信息介绍 基于spring的kafka应用,非常简单即可搭建起来,前提是要有一个kafka的broker集群.我在之前的博文里面已经介绍并搭建了一套broker环境,参考Kafka研究[一] ...

  8. Spring生态顶级项目说明

    1.Spring IO platform 说明:用于系统部署,是可集成的,构建现代化应用的版本平台 2.Spring Boot 说明:旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使 ...

  9. Spring生态研习【五】:Springboot中bean的条件注入

    在springboot中,开发的确变的简单了很多,但是,开发者现在希望开发傻瓜式的方便搞定项目中的各种奇怪的需求最好了,不用烧脑,本来程序猿的生活就是枯燥的,不要再给自己添加更多的烦恼. 今天,就为了 ...

随机推荐

  1. JS实现连接方式的菜单

    <html> <head><meta http-equiv="Content-Language" content="zh-cn"& ...

  2. [Everyday Mathematics]20150108

    设 $f$ 在 $(a,b)$ 上 $n+1$ 次可导, 且 $$\bex \ln\frac{f(b)+f'(b)+\cdots+f^{(n)}(b)}{f(a)+f'(a)+\cdots+f^{(n ...

  3. 使用std::function 把类成员函数指针转换为普通函数指针

    前言 这是改造前一篇 设计模式 的基础,使通知者不必知道观察者的类名和函数名,只需要知道更新函数的原型即可. 开发环境:WIN7 32位 + VS2010 发现在VS2005中使用std::funti ...

  4. TP分析

    http://blog.csdn.net/l627859442/article/details/7633457 http://blog.chinaunix.net/uid-27717694-id-37 ...

  5. Annotations:注解

    注解,作为元数据的一种形式,虽不是程序的一部分,却有以下作用: 可以让编译器跳过某些检测 某些工具可以根据注解信息生成文档等 某些注解可以在运行时检查   @表示这是一个注解   @Override ...

  6. 20150913K-means聚类

    1.聚类的思想: 将一个有N个对象的数据集,构造成k(k<=n)个划分,每个划分代表一个簇.使得每个簇包含一个对象,每个对象有且仅属于一个簇.对于给定的k,算法首先给出一个初始的划分方法,以后通 ...

  7. HDU-4738 Caocao's Bridges 边联通分量

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:在有重边的无向图中,求权值最小的桥. 注意trick就好了,ans为0时输出1,总要有一个 ...

  8. URL的格式scheme

    url scheme: scheme + (://) + userinfo + (@) + hostname + (:) + port + path + (?) + query + (#) + fra ...

  9. JSF 2 radio buttons example

    In JSF, "h:selectOneRadio" tag is used to render a set of HTML input element of type " ...

  10. thymeleaf条件表达式

    条件表达式形式:condition, then and else <tr th:class="${row.even}? 'even' : 'odd'"> ... < ...