(笔记)Spring实战_Spring之旅(1)_简化Java开发

但归根结底,支撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring最根本的使命上:简化Java开发。
为了降低Java开发的复杂性,Spring采取了以下4种关键策略:
(1)基于POJO的轻量级和最小侵入性编程
(2)通过依赖注入和面向接口实现松耦合
(3)基于切面和惯例进行声明式编程
(4)通过切面和模板减少样板式代码
1.激发POJO的潜能
或许你会发现很多框架通过强迫应用继承它们的类或实现它们的接口从而让应用跟框架绑死。 .. 强迫开发者编写大量冗余代码、应用与框架绑定,并且通常难以编写测试代码。Spring竭力避免因自身的API而弄乱你的应用代码。Spring不会强迫你实现Spring规范的接口或继承Spring规范的类,相反,在基于Spring构建的应用中,它的类通常没有任何痕迹表明你使用了Spring。最坏的场景是,一个类或许会使用Spring注解,但它依旧是POJO。

package com.habuma.spring;

public class HelloWorldBean
{
    public String sayHello()
    {
        return "Hello World";
    }
}

2.依赖注入
耦合具有两面性。一方面,紧密耦合的代码难以测试,难以复用,难以理解,并且典型地表现出“打地鼠”式的bug特性(修复一个bug,导致出现一个新的或者甚至更多的bug)。另一方面,一定程度地耦合又是必须的——完全没有耦合的代码什么也做不了。
通过依赖注入,对象的依赖关系将有负责协调系统中各个对象的第三方组件在创建对象时设定。对象无需自行创建或管理它们的依赖关系——依赖关系将被自动注入到需要它们的对象中去。
如果一个对象只通过接口(而不是具体实现或初始化的过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换。
创建应用组件之间协作的行为通常称为装配
Spring通过应用上下文(Application Context)装载Bean的定义并把它们组装起来。Spring应用上下文全权负责对象的创建和组装。
3.应用切面
AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件。
诸如日志、事务管理和安全此类的系统服务经常融入到有自身核心业务逻辑的组件中去,这些系统服务通常被称为横切关注点,因为它们总是跨越系统的多个组件。
如果将这些关注点分散到多个组件中去,你的代码将引入双重复杂性:
(1)如果你要改变这些关注点的逻辑,你必须修改各个模块的相关实现。即使你把这些关注点抽象为一个独立的模块,其他模块只是调用它的方法,但方法的调用还是重复出现在各个模块中。
(2)你的组件会因为那些与自身核心业务无关的代码而变得混乱。
AOP使这些服务模块化,并以声明的方式将它们应用到它们需要影响的组件中去。 .. 我们可以把切面想象为覆盖在很多组件之上的一个外壳。应用是由那些实现各自业务功能的模块组成。利用AOP,你可以使用各种功能层去包裹核心业务层。
4.使用模板消除样板式代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值