Are you wondering why you are forced to read so many books? Just remember one sentence: Read a lot and make trip further. you can benefit a lot from books.
想知道为什么要读那么多书吗?请记住一句话:读万卷书,行万里路。你会从书中获益良多。

Spring started as a lightweight alternative to Java Enterprise Edition (JEE, or J2EE as it was known at the time).
Spring诞生时是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。

Rather than develop components as heavyweight Enterprise JavaBeans (EJBs), Spring offered a simpler approach to enterprise Java development, utilizing dependency injection and aspect-oriented programming to achieve the capa- bilities of EJB with plain old Java objects (POJOs).
无需 开发重量级的Enterprise JavaBean(EJB),Spring提供了更简单的企业级开发,利用依赖注入和切面编程,用简单的Java对象POJO实现EJB的功能

But while Spring was lightweight in terms of component code, it was heavyweight in terms of configuration.
但Spring在开发组件的时候很轻量级,但在配置方面很重

Initially, Spring was configured with XML (and lots of it).
一开始的时候,Spring是使用XML进行配置的,而且很多XML配置

Spring 2.5 introduced annotation-based component-scanning, which eliminated a great deal of explicit XML configuration for an application’s own components.
Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。

And Spring 3.0 introduced a Java-based configuration as a type-safe and refactorable option to XML.
Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式, 可以代替XML。

Even so, there was no escape from configuration.
尽管如此,我们依旧没能逃脱配置的魔爪。

Enabling certain Spring features such as transaction management and Spring MVC required explicit configuration, either in XML or Java.
开启某些Spring特性时,比如事务管理和Spring MVC,还是需要用XML或Java进行显式配置。

Enabling third-party library features such as Thymeleaf-based web views required explicit configuration.
启用第三方库时也需要显式配置,比如基于 Thymeleaf的Web视图。

Configuring servlets and filters (such as Spring’s DispatcherServlet) required explicit configuration in web.xml or in a servlet initializer.
配置Servlet 和 过滤器(比如Spring的DispatcherServlet)同样需要在 web.xml或Servlet初始化代码里进行显式配置。

Component-scanning reduced configuration and Java configuration made it less awkward, but Spring still required a lot of configuration.
配置扫描减少配置量, Java配置让它看上去简洁 不少,但Spring还是需要不少配置。

All of that configuration represents development friction.
这些配置都代表了开发时的损耗。

Any time spent writing configuration is time spent not writing application logic. The mental shift required to think about configuring a Spring feature distracts from solving the business problem.
因为在思考Spring特性配置和解决业务问题之间需要 进行思维切换,所以写配置挤占了写应用程序逻辑的时间。

Like any framework, Spring does a lot for you, but it demands that you do a lot for it in return.
和所有框架一样,Spring实用,但与 此同时它要求的回报也不少。

Moreover, project dependency management is a thankless task.
除此之外,项目的依赖管理也是件吃力不讨好的事情。

Deciding what libraries need to be part of the project build is tricky enough. But it’s even more challenging to know which versions of those libraries will play well with others
决定项目里要用哪些库就已经够让人 头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。

As important as it is, dependency management is another form of friction.
并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。

When you’re adding dependencies to your build, you’re not writing application code. Any incompatibilities that come from selecting the wrong versions of those dependencies can be a real productivity killer.
一旦选错了依赖的版本,随 之而来的不兼容问题毫无疑问会是生产力杀手。
Spring Boot让这一切成为了过去。

Spring Boot has changed all of that.
Spring Boot 将改变这一切

Spring rebooted --重新认识Spring相关推荐

  1. spring vertx_如何在Spring设置Vertx

    spring vertx by Rick Lee 李瑞克(Rick Lee) 如何在Spring设置Vertx (How to set up Vertx in Spring) Spring is pr ...

  2. Spring MVC集成Spring Data Reids和Spring Session实现Session共享

    说明:Spring MVC中集成Spring Data Redis和Spring Session时版本是一个坑点,比如最新版本的Spring Data Redis已经不包含Jedis了,需要自行引入. ...

  3. 『互联网架构』软件架构-spring源码之spring结构概述

    spring从07年接触到目前2018年也差不多10年了,一个java的框架为什么能火这么多年.很多人对spring的使用轻车熟路,但是从未解读过spring的源码,老铁跟我一起看看源码,了解下内部的 ...

  4. 【Spring Web MVC】Spring Web MVC 注解开发环境搭建

    为什么80%的码农都做不了架构师?>>>    1.创建maven项目 创建一个名为:springwebmvc-first的maven项目 2.添加依赖包 要使用springWebM ...

  5. SCA与spring集成(在spring中开发SOA)

    客户端调用与Tuscany SCA相同 服务端的配置如下: sca.composite <?xml version="1.0" encoding="UTF-8&qu ...

  6. Spring Security 实战:Spring Boot 下的自动配置

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 我们在前几篇 ...

  7. Spring Boot 应用系列 1 -- Spring Boot 2 整合Spring Data JPA和Druid,双数据源

    最近Team开始尝试使用Spring Boot + Spring Data JPA作为数据层的解决方案,在网上逛了几圈之后发现大家并不待见JPA,理由是(1)MyBatis简单直观够用,(2)以Hib ...

  8. Spring Boot(五):spring data jpa的使用

    Spring Boot(五):spring data jpa的使用 一.spring data jpa介绍 1,JPA是什么 JPA(Java Persistence API)是Sun官方提出的Jav ...

  9. Spring Boot——开发新一代Spring Java应用

    2019独角兽企业重金招聘Python工程师标准>>> Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Be ...

最新文章

  1. java gif 帧_在Java中修复动画gif的帧速率
  2. 【怎样写代码】偷窥高手 -- 反射技术(二):窥视内部
  3. Postgresql创建只读用户,并开放部分表的权限
  4. CSS3 Border-image
  5. 全面解读SDH、MSTP、OTN和PTN的区别和联系
  6. STM32 —— LIN
  7. 浏览器加载js的阻塞与非阻塞
  8. 蓝牙:深入浅出低功耗蓝牙(BLE)协议栈
  9. Servlet3.0 jsp跳转到Servlet 出现404错误的路径设置方法
  10. 上验证cudnn是否安装成功_ubuntu18.04 安装cuda、cudnn、tensorflow和pytorch其实很简单...
  11. vs2010解决方案源文件夹和头文件夹消失
  12. Axure RP 8.0激活码 Mac Windows
  13. 02326操作系统课后答案
  14. # Itext Pdf 合并拆分
  15. 网络存储服务器dsm系统,群晖nas网络存储器常用解决方案
  16. 英文歌曲:my heart will go on(我心永恒)
  17. CCF关于举办CSP-J1 CSP-S1 初赛的报名通知
  18. SQL练习-sqlzoo
  19. 论算法的重要性与乐趣
  20. 从user 登陆开始

热门文章

  1. 制作PPT的基本技巧
  2. 创业公司的 Nodejs 工程师
  3. 远程医疗诊断、便携传感智能设备引爆新体验
  4. BugTags配置自动上传符号表
  5. PHP二维码解析demo
  6. 核心显卡,集成显卡,独立显卡
  7. 呼叫中心管理系统的描述
  8. 移动开发作业6——蓝牙通信的简要设计与开发
  9. JAVA基本程序设计规范
  10. 锐捷Ruijie路由器版本升级