Rhyme/Spring是如何简化Java开发的(POJO、DI、AOP、模板)

11 篇文章 0 订阅

Spring是如何简化Java开发的

Spring是为了解决企业及应用的复杂性而创建的,使用spring创建的pojo对象,也就是简单的java类,可以完成原来只有重量级的EJB对象才能完成的操作。

Spring 简化java开主要体现在四个方面

1、基于POJO对象的轻量级和最小化侵入式编程

2、依赖注入DI与面向接口编程实现松耦合

3、基于切面和惯例进行声明式编程

4、基于切面和模板减少样板式代码

1、基于POJO对象的轻量级和最小化侵入式编程

在一些开发或框架中,常常会要求你创建的类对象继承或实现他们的某个类或接口,这会导致你的应用会被这些框架绑死,因为这些都是一些紧耦合的关系。而spring的设计原则之一就是尽量避免spring的API来影响你的代码。也就是说spring中的pojo对象真的很纯粹,我们再讲得细一点,就是说这个pojo对象不管在spring的应用程序中还是非spring的应用程序中所代表的的意义和功能都是一样的,这对你的项目程序以后的升级和改造是有极大的帮助的。这也正是spring低侵入式的典型表现。

最后简单的一句话总结:个人认为,基于POJO对象的轻量级和最小化侵入式编程的核心就是让JavaBean对象的功能更纯粹,实现松耦合。

2、使用DI依赖注入和面向接口编程实现松耦合

我们在上面讲到了spring的pojo对象的纯粹和简单性,那么在具体项目或应用中,这些对象之间的逻辑关系又是怎们被组织起来的呢?我们要知道,仅仅有简单的pojo对象是无法形成有逻辑性的业务的,那么在这里我们就要讲到spring的依赖注入DI(Dependency injection)了。
简单的一句话解释依赖注入就是pojo对象所需要的依赖关系不再与对象自己来管理,而是由spring容器自动的将依赖关系注入到对象中。

那么依赖注入能带来什么好处呢?

1、实现松耦合

2、更有利于单元测试

3、基于切面和惯例的声明式编程

AOP编程,在我看来核心的本质和我们现实社会中的逻辑很像,在我们现实社会中提供着各种各样的基础设施供我们使用,而作为生活在这个社会中我们,在spring中称为对象,是不用关心这些基础设施是怎么实现的。那么在spring中也是一样,把在这个应用程序总用到的一些公共服务把它们抽取出来形成所谓的切面,可以理解为我们现实社会中的基础设施,比如常见的日志服务、事务管理、安全控制等等。你会发现这些服务基本上每个对象都会用到,那么这个时候我们就可以把它们抽取出来形成公共服务,以切面的形式提供这些服务。

这样带来的另一个好处就是,当我需要新建新的切面,或是新的基础设施的时候,我是可以完全不去影响已有的对象和大部分的基础设施的,从而实现高度的松耦合,这对程序的开发和维护来说都有极大的好处。

对于所谓的声明式编程,你可以这样理解,还是以增加切面,也就是增加基础设施服务为例,我们需要做的只是在配置文件中声明一下这个切面以及这个切面将要服务的对象即可,而对原有的代码不造成影响,我想这就是所谓的声明式编程。

4、基于切面 和模板减少样板式代码

刚开始看到这个的时候,你会感到比较陌生,说什么是模板?什么叫样板式代码?好,那我们先来解决这两个问题。

什么是样板式代码?什么是模板?

只要你平时从事多一定的java开发,那你肯定对以下的场景感到很熟悉:使用jdbc进行一些数据业务操作的时候,我们采用的都是固定不变的步骤,什么先获取Connection对象,ResultSet对像、还有固定的异常检查,最后还要记得关闭这些对象。你会发现上面的这些步骤大多是固定的,这些固定的代码我们就称之为样板式代码我们完全可以把它抽离出来形成一个模板,这样做有什么好处呢?好处就在于我只要关心我的核心代码就够了,我不用再去关心异常的捕获,对象的关闭,这样固定重复的步骤。

所以spring就提供了这样的机制,它将一些拥有固定样式的代码进行封装形成一个模板,典型的例子就是spring提供的jdbcTemplate模板。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值