毫无疑问,Spring Framework是最受欢迎的Java框架之一,通过提供依赖注入和控制反转等特性,可以轻松创建真实的企业级Java应用程序。但是,Spring不仅是一个DI和IOC框架。通过提供有用的抽象层,它可以简化许多Java API,例如JDBC,JMS,Java Mail等。使用Spring的JdbcTempalte和其他实用程序类使用JDBC要容易得多。它们删除了大多数与开发SQL语句和处理ResultSet相关的 Java开发人员面临的摩擦,以获取他们想要的Java对象。

因此,当学习Spring框架时,不仅要学习如何使用它,还要了解如何在Java和面向对象编程中编写更好的代码。在本文中,将分享在学习Spring时遇到的一些最佳实践

1.接口编码

这是在阅读Head First Design Pattern时首先学到的旧OOP指南。该OOP设计原则的主要目的是减少两个类之间的耦合,从而提高灵活性。

Spring严格遵循这个面向对象的准则,并经常暴露一个接口来使用密钥类,例如创建JdbcOperation接口以利用JdbcTemplate。这种做法促进了不同层之间的松散耦合。

另一个很好的例子是Cache 接口,用于提供缓存。所有其他缓存实现,例如EhCache,ConcurrentMapCache和NoOpCache实现这个接口。

如果你的代码依赖于Cache接口而不依赖于任何特定实现,则可以切换缓存提供程序而不会影响代码的其他部分。

下面是使用Collection框架在Java中编写接口的简单代码示例。如果仔细观察,在这个示例中,我使用了一个接口而不是实现来声明Java中的变量、参数和返回方法类型。

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /**

  • Program to demonstrate coding for interfaces in Java
  • @author WINDOWS 8

/ public class Hello { public static void main(String args[]) { // Using interface as variable types List rawMessage = Arrays.asList("one", "two", "three"); List allcaps = toCapitalCase(rawMessage); System.out.println(allcaps); } /*

  • Using Interface as type of argument and return type */ public static List toCapitalCase(List messages) { return messages.stream() .map(String::toUpperCase) .collect(Collectors.toList()); } }

这种编码风格灵活,将来更容易更改。

  1. 检查异常和未经检查异常

如果你使用过Spring framework,就会注意到Spring更喜欢未检查的异常而不是已检查的异常,最好的例子是Spring JDBC。

Spring有一个丰富的异常层次结构,用于描述从数据库中连接和检索数据时可能出现的不同错误,但是这些错误的根源是DataAccessException,它是未选中的。

Spring认为,大多数都是由于无法在catch块中纠正错误造成的,因此它决定捕获开发人员的异常,而不是像Java那样强制它们。结果是代码更整洁,没有空的catch块,并且try-catch块更少。这也是在Java中处理错误和异常时的最佳实践之一。

3.模板设计模式的使用

Spring大量使用Template方法设计模式来简化事情。一个很好的例子是JdbcTemplate,它在使用JDBC API时消除了很多麻烦。你只要定义需要的内容,Spring负责流程的其余部分。

如果不知道模板设计模式定义了一个过程或算法,你不可能改变这个过程,但你可以根据你的需求来制定步骤.

例如,在处理JDBC时,可以使用JdbcTemplate执行查询并获得所需的对象。你只需要提供在每种情况下都不同的SQL,以及将行从表映射到对象的映射逻辑。

这是一个很好的图表,它很好地解释了模板设计模式。你可以看到每个人都有一些共同的任务,但他们做了不同的工作,并且很好地通过Template方法捕获。它们所需要定义的是它们的工作,它们通过将work()定义为一个抽象方法来定义它们的工作。

Java开发人员可以从Spring框架中学到编程技巧 这就是您可以从Spring框架中学到的一些Java最佳实践,无论如何,如果您遇到过从Spring Framework学到的任何其他最佳实践,请在评论中与我们分享。

转载于:https://juejin.im/post/5c7e41b9f265da2db4144765

Java开发人员可以从Spring框架中学到编程技巧相关推荐

  1. tfs java开发需要jar_使用Spring框架开发最少需要哪些jar包,依赖jar包有哪些?

    展开全部 最少需要11个jar包,分别是:spring-context.jar commons-logging.jar aspectjrt.jar spring-core.jar aspectjwea ...

  2. 如何成为一个成功的 Java 开发人员?

    如果你是一名成功的Java程序员,那么在任何公司中的Java开发人员中,你都有机会获取一席之地. 作者 | ASHISH KHURAISHY 译者 | 苏本如,责编 | 郭芮 出品 | CSDN(ID ...

  3. Java开发人员在编程中常见的雷!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,千锋老师为大家分享一些J ...

  4. 分享一些Java开发人员在编程中最容易踩雷的地方!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,小千为大家分享一些Jav ...

  5. 一些Java开发人员在编程中常见的雷!

    身为一名Java从业人员,其职场生涯就是一边踩"坑",一边上升的过程.这个过程中不仅要学会修改无数bug,也要学会越过很多"坑".今天,小千为大家分享一些Jav ...

  6. 2021年最新调查:86% 的 Java 开发人员 依赖 Spring 框架

    >>号外:关注"Java精选"公众号,回复"2021面试题"关键词,领取全套500多份Java面试题文件. 自2003年发布以来,Spring Ja ...

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

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

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

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

  9. Spring Boot 针对 Java 开发人员的安装指南

    Spring Boot 可以使用经典的开发工具或者使用安装的命令行工具.不管使用何种方式,你都需要确定你的 Java 版本为 Java SDK v1.8 或者更高的版本.在你开始安装之前,你需要确定你 ...

最新文章

  1. iOS开发-UIColor转UIIamge方法
  2. 哈哈哈哈哈哈!当前的人工智能有多智障?
  3. 【PC工具】大神开源项目-配色调色工具Colorpicker颜色选择器
  4. Java基础篇:String、StringBuffer、StringBuilder
  5. 如何将Jupyter Notebook连接到远程Spark集群并每天运行Spark作业?
  6. leetcode1502. 判断能否形成等差数列(小学生难度)
  7. Reddit热议:为什么PyTorch比TensorFlow更快?
  8. 95-136-042-源码-Operator-AbstractUdfStreamOperator
  9. java 多线程 day06 threadLocal
  10. NOX的使用之学习篇【三】
  11. 递归删除评论php,php如何递归删除文件
  12. 2010nbsp;贱语大全!
  13. IntelliJ IDEA 2018.2激活方法及常用快捷键
  14. python 函数说明_Pythonhelp()函数用法详解
  15. 《系统工程理论与实践》Latex 模板使用教程
  16. 微软ad域服务器 管理用户,威联通NAS助企业解决Windows AD域账户管理
  17. 5G手机开打价格战,4G手机将被加速淘汰
  18. 多功能网络侦查OSINT工具,FinalRecon
  19. 基于BIM+3DGIS物联网技术,如是实现智慧园区(楼宇)可视化管控平台的?
  20. Pillow图像处理(PIL.Image类的详细使用)

热门文章

  1. Android GridView示例
  2. mockito模拟依赖注入_Mockito间谍–部分模拟
  3. dict 转换成json_Python XML转换为JSON,XML转换为Dict
  4. java初学者书籍_面向初学者的5本最佳Java核心书籍
  5. 具有多个单元格类型的iOS UITableView
  6. jsf用于页面判断的标签_用于操作和导航的JSF命令组件标签
  7. 10.14-10.20学习总结
  8. CSS可见格式化模型
  9. flutter 防止键盘弹出 导致超出屏幕
  10. Iwfu-GitHubclient使用