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模板。

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

  1. Spring简化Java开发_spring如何简化java开发

    1.spring简介 Spring的主要目的是用来替代更加重量级的企业级的java技术 2.spring如何简化java开发 1)基于POJO的轻量级和最小侵入性编程: 2)通过依赖注入和面向接口实现 ...

  2. Spring简化Java开发_java开发如何用spring简化?详细图解

    近些年,随着科学技术水平的不断进步与发展,各种高新技术的应用越来越广泛.这也吸引了越来越多的人去学习java等编程语言以更好地适应时代的发展.今天就来为大家介绍一些与java有关的知识.也就是java ...

  3. Spring简化Java开发_第1章—Spring之旅—简化Spring的java开发

    简化Spring的java开发 1.1简介 区别于EJB的特性 简化javaBean,为了降低java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小入侵性编程 通过依赖 ...

  4. Spring基础知识汇总 Java开发必看

    Spring简介 Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版.Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅 ...

  5. Spring MVC的DispatcherServlet – Java开发人员应该知道的10件事

    如果您使用过Spring MVC,那么您应该知道什么是DispatcherServlet? 它实际上是Spring MVC的心脏,确切地说是MVC设计模式或控制器的C语言. 应该由Spring MVC ...

  6. 简化java_JAVA之旅-简化java开发

    为了降低java开发的复杂性,spring采取了以下4种关键策略 基于POJO的轻量级和最小侵入行编程 为使不让应用与框架绑死,一个bean不会实现,继承或者导入Spring API相关的任何东西,只 ...

  7. Spring事务原理,Java开发岗还不会这些问题

    registerComponentIfNecessary(beanDefinition, parserContext); } 主要看registerAutoProxyCreatorIfNecessar ...

  8. Java开发语句和代码块模板

    1 输出 System.out.println("Hello World"); System.out.println("First Number = " + f ...

  9. Java开发人员应该知道的5大Spring Boot功能

    您可能已经听说过Spring Boot,这是用不到140个字符创建一个Spring Web应用程序的神奇力量,可以在一条推文中编写这些字符,但这到底意味着什么? 哪些功能可以使Spring Boot具 ...

最新文章

  1. day13 paramiko、数据库表操作
  2. C# GDI+ 简单绘图 (三)
  3. 面向对象----封装之proprty
  4. linux shell if [[ ]]和[ ]区别 ||
  5. 在Asciidoc中的多级列表以及缩进的使用
  6. 有人滥用 GitHub Actions在 GitHub 服务器挖掘密币,且正在蔓延
  7. LeetCode 19. Remove Nth Node From End of List
  8. (原)MobileNetV1
  9. 访问阿里云服务器配置的ftp后,报错227 entering passive mode
  10. 2021湖北省技能高考成绩查询,刚刚!湖北高考查分及志愿填报时间公布!
  11. oj2513: 小勇学分数
  12. 从端到云——工业物联网项目全栈快速开发实践
  13. 关于谷歌JSV8与微软JSRT的性能比较
  14. web微信Android版,android实现用户体验超棒的微信WebView进度条
  15. Windows环境下MySQL8.0.26下载安装详细步骤
  16. httpclient Accept-Encoding 乱码
  17. LTE-TDD随机接入过程(4)-RIV的解析和Preamble资源的选择
  18. 大数据可视化工具圈里的春秋战国
  19. TS-修饰符 与 static
  20. 7-55 吉老师的回归 (15 分)

热门文章

  1. 北京电信东区电信局 Excel人力资源应用培训
  2. 严重警告:大家不要使用任何形式的免费发短信的软件[转贴]
  3. stm32f302实现斩波控制步进电机_[转载]步进电机原理介绍与基于STM32的SPWM驱动步进电机,使用软件实现电机细分...
  4. 企业微信群机器人快速接入
  5. 大专前端实习生如何挣到月薪 20k
  6. 2012-11-09《Oopsnbsp;Inbsp;Did…
  7. js php滑动拼图解锁,js 滑动拼图验证码
  8. Redis 单数据多源超高并发下的解决方案 1
  9. 手握多样算力,从容面对下一代互联网的百样创新
  10. 基本算法4.1堆积木