加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

使用 Spring Framework 时常犯的十大错误

发布时间:2019-07-30 05:39:22 所属栏目:评测 来源:锅外的大佬
导读:Spring 可以说是最流行的 Java 框架之一,也是一只需要驯服的强大野兽。虽然它的基本概念相当容易掌握,但成为一名强大的 Spring 开发者仍需要很多时间和努力。 在本文中,我们将介绍 Spring 中一些常见的错误,特别是面向 Web 应用程序和 Spring Boot。正
副标题[/!--empirenews.page--]

Spring 可以说是最流行的 Java 框架之一,也是一只需要驯服的强大野兽。虽然它的基本概念相当容易掌握,但成为一名强大的 Spring 开发者仍需要很多时间和努力。

使用 Spring Framework 时常犯的十大错误

在本文中,我们将介绍 Spring 中一些常见的错误,特别是面向 Web 应用程序和 Spring Boot。正如 Spring Boot 官网 所说,Spring Boot 对应该如何构建 Production-Ready 的应用保持着 相当固执的观点,本文将尝试模仿这种观点,并提供一些技巧的概述,这些技巧将很好地融入标准 Spring Boot 的 web 应用程序开发中去。

如果你对 Spring Boot 还不是很熟悉,但仍想尝试下接下来提到的一些内容,我也为本文创建了一个 GitHub 仓库。如果你在阅读过程中感到困惑,我建议把代码 clone 下来,并在本地电脑上使用这些代码。

1. 常见错误一:太过关注底层

我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见。症状包括经常重写一些常见的代码,很多开发人员都有这种症状。

虽然理解特定库的内部结构及其实现,在很大程度上是好的并且很有必要的(也可以是一个很好的学习过程),但作为软件工程师,不断地处理相同的底层实现细节对个人的开发生涯是有害的。像 Spring 这种抽象框架的存在是有原因的,它将你从重复地手工劳作中解放出来,并允许你专注于更高层次的细节 —— 领域对象和业务逻辑。

因此,接受抽象。下次面对特定问题时,首先进行快速搜索,确定解决该问题的库是否已被集成到 Spring 中;现在,你可能找到一个合适的现成解决方案。比如,一个很有用的库,在本文的其他部分,我将在示例中使用 Project Lombok 注解。Lombok 被用作样板代码生成器,希望懒惰的开发人员在熟悉这个库时不会遇到问题。举个例子,看看使用 Lombok 的 “标准 Java Bean” 是什么样子的:

  1. @Getter 
  2. @Setter 
  3. @NoArgsConstructor 
  4. public class Bean implements Serializable { 
  5.  int firstBeanProperty; 
  6.  String secondBeanProperty; 
  7. }复制代码 

如你所想,上述代码被编译为:

  1. public class Bean implements Serializable { 
  2.  private int firstBeanProperty; 
  3.  private String secondBeanProperty; 
  4.  public int getFirstBeanProperty() { 
  5.  return this.firstBeanProperty; 
  6.  } 
  7.  public String getSecondBeanProperty() { 
  8.  return this.secondBeanProperty; 
  9.  } 
  10.  public void setFirstBeanProperty(int firstBeanProperty) { 
  11.  this.firstBeanProperty = firstBeanProperty; 
  12.  } 
  13.  public void setSecondBeanProperty(String secondBeanProperty) { 
  14.  this.secondBeanProperty = secondBeanProperty; 
  15.  } 
  16.  public Bean() { 
  17.  } 
  18. }复制代码 

但是,请注意,如果你打算在 IDE 中使用 Lombok,很可能需要安装一个插件,可在 此处 找到 Intellij IDEA 版本的插件。

2. 常见错误二:内部结构 “泄露”

公开你的内部结构,从来都不是一个好主意,因为它在服务设计中造成了不灵活性,从而促进了不好的编码实践。“泄露” 的内部机制表现为使数据库结构可以从某些 API 端点访问。例如,下面的 POJO(“Plain Old Java Object”)类表示数据库中的一个表:

  1. @Entity 
  2. @NoArgsConstructor 
  3. @Getter 
  4. public class TopTalentEntity { 
  5.  @Id 
  6.  @GeneratedValue 
  7.  private Integer id; 
  8.  @Column 
  9.  private String name; 
  10.  public TopTalentEntity(String name) { 
  11.  this.name = name; 
  12.  } 
  13. }复制代码 

假设,存在一个端点,他需要访问 TopTalentEntity 数据。返回 TopTalentEntity 实例可能很诱人,但更灵活的解决方案是创建一个新的类来表示 API 端点上的 TopTalentEntity 数据。

  1. @AllArgsConstructor 
  2. @NoArgsConstructor 
  3. @Getter 
  4. public class TopTalentData { 
  5.  private String name; 
  6. }复制代码 

这样,对数据库后端进行更改将不需要在服务层进行任何额外的更改。考虑下,在 TopTalentEntity 中添加一个 “password” 字段来存储数据库中用户密码的 Hash 值 —— 如果没有 TopTalentData 之类的连接器,忘记更改服务前端,将会意外地暴露一些不必要的秘密信息。

3. 常见错误三:缺乏关注点分离

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读