1. 简化Java开发

简化Java开发

Spring的诞生

应对应用的复杂性,Spring的关键策略

  • 基于POJO的轻量级和最小侵入性编程

  • 通过依赖注入和面向接口实现松耦合

  • 基于切面AOP和惯例进行声明式编程

  • 通过切面和模板减少样板式代码

POJO之美

定义

  • POJO(Plain Old Java Objects):简单普通的Java对象。

  • 不具有任何特殊角色,不继承/实现任何其他Java框架的类和接口。

很多框架具有侵入性,强迫开发者编写与框架绑定的大量冗余、难以测试的代码。

Spring强调基于POJO的最下侵入性编程

  • Spring不会强迫实现的特定规范的接口或继承特定类

    扫描二维码关注公众号,回复: 2756334 查看本文章
  • Spring通过依赖注入赋予POJO以魔力

J2EE中轻量级框架和重量级框架的概念:

  • 简单一句话:量级主要由对容器的依赖性决定,依赖性越小,越轻量

  • 容器:用来管理组件行为的一个集合工具,组件的行为包括与外部环境的交互、组件的生命周期、组件之间的合作依赖关系等

  • 在Java应用开发环境中,“轻量级Java”主要指两个东西:简化的编程模型和更具响应能力的容器。轻量级Java旨在消除与传统JavaEE API有关的不必要的复杂性和限制,同时缩短应用程序的部署实现。

  • 轻量级技术当中,控制反转IoC(依赖注入DI)是关键。使用IoC,开发人员不需要编写复杂的代码来执行查询、处理基础架构异常或管理连接,就能够解决对象依赖性问题。这有助于简化代码,将业务逻辑和基础架构分离,从而是应用程序更容易维护。

  • 轻量级Java的另一个特征就是,它不会强迫业务对象遵循平台特定接口。这允许开发人员在普通Java对象(POJO)中实现业务逻辑,从而提高生产率。

依赖注入

  • 过于复杂的软件系统,使得面向对象已经不够。

  • 组件化的思想:分离关注点,其目的是解耦合,实现每个组件块时只关注组件内部的事情,要点就是明确定义组件之间的接口。

  • 依赖注入:强制将组件的构建和使用分离,就像拼接泡沫板一样,内部就自己内部管理,但是提供外部接口以供使用。

  • 实用的Java系统由多个类组成,类之间互相协作完成特定的业务逻辑。

  • 以往通常每个对象负责管理与之协作的对象(即所依赖的对象)的引用,导致高度耦合、难以测试。

  • 耦合具有两面性

    • 耦合的代码难以测试

    • 一定程度的耦合是不可避免的

  • 依赖注入DI(Dependence Injection):对象的依赖关系由负责协调系统中各对象的第三方组件(通常是容器)在创建对象时设定。对象无需自己创建或管理它们的依赖关系——依赖关系将被自动注入到需要它们的对象中去。

  • 依赖注入带来的好处:松耦合

  • Spring通过应用上下文装载Bean的定义并把它们组装起来,应用上下文负责对象的创建和组装。

应用切面

横切关注点:诸如日志、事务管理和安全等系统服务通常被称为横切关注点(跨越系统的多个组件)。以往通常这些横切关注点分散到多个组件中去(融入到有自身逻辑业务的组件中),导致代码引入双重复杂性:

  • 遍布系统的横切关注点实现代码将会重复出现在多个组件中

  • 组件会因为这些与自身业务无关的代码而变得复杂混乱

AOP(面向切面编程)使得这些业务模块化,并以声明的方式将他们应用到需要的组件中去,AOP能确保POJO简单。

使用模板消除样板式代码

  • JDBC等使用Java API导致样板式代码

  • Spring旨在通过模板封装来消除样板式代码

例如,我们在JDBC的操作中,有增删改查操作,这些操作的代码共性很多,而且每一种操作真正的重要部分往往就那么几行代码,此时我们可以封装一个JDBC模板类(JDBCTemplate),作为一个通用的JDBC操作。

猜你喜欢

转载自blog.csdn.net/sinat_37976731/article/details/81359975