> For the complete documentation index, see [llms.txt](https://potoyang.gitbook.io/spring-in-action-v4/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://potoyang.gitbook.io/spring-in-action-v4/1/1.1.md).

# 1.1　简化 Java 开发

Spring 是一个开源框架，最早由 Rod Johnson 创建，并在[《Expert Oneon- One：J2EE Design and Development》](http://amzn.com/076454385)这本著作中进行了介绍。Spring 是为了解决企业级应用开发的复杂性而创建的，使用 Spring 可以让简单的 JavaBean 实现之前只有 EJB 才能完成的事情。但 Spring 不仅仅局限于服务器端开发，任何 Java 应用都能在简单性、可测试性和松耦合等方面从 Spring 中获益。

bean 的各种名称……虽然 Spring 用 bean 或者 JavaBean 来表示应用组件，但并不意味着 Spring 组件必须要遵循 JavaBean 规范。一个 Spring 组件可以是任何形式的 POJO。在本书中，我采用 JavaBean 的广泛定义，即 POJO 的同义词。

纵览全书，读者会发现 Spring 可以做非常多的事情。但归根结底，支撑 Spring 的仅仅是少许的基本理念，所有的理念都可以追溯到 Spring 最根本的使命上：简化 Java 开发。

这是一个郑重的承诺。许多框架都声称在某些方面做了简化，但 Spring 的目标是致力于全方位的简化 Java 开发。这势必引出更多的解释，Spring 是如何简化 Java 开发的

&#x20;为了降低 Java 开发的复杂性，Spring 采取了以下 4 种关键策略：

* 基于 POJO 的轻量级和最小侵入性编程；
* 通过依赖注入和面向接口实现松耦合；
* 基于切面和惯例进行声明式编程；
* 通过切面和模板减少样板式代码。

几乎 Spring 所做的任何事情都可以追溯到上述的一条或多条策略。在本章的其他部分，我将通过具体的案例进一步阐述这些理念，以此来证明 Spring 是如何完美兑现它的承诺的，也就是简化 Java 开发。让我们先从基于 POJO 的最小侵入性编程开始。
