加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

后端开拓实践系列——Spring Boot项目模板

发布时间:2019-07-27 00:34:53 所属栏目:建站 来源:无知者云
导读:在我的事变中,我从零开始搭建了不少软件项目,个中包括了基本代码框架和一连集成基本办法等,这些内容在火速开拓中凡是被称为第0个迭代要做的工作。可是,当项目运行了一段时刻之后再来反观,我总会发明一些不敷的处所,要么测试分类没有分好,要么根基的

除了Checkstyle同一代码名目之外,项目中有些通用的民众的编码实践方法也必要在整个开拓团队中举办同一,包罗但不限于以下方面:

  • 客户端的哀求数据类同一行使沟通后缀,好比Command
  • 返回给客户端的数据同一行使沟通后缀,好比Represetation
  • 同一对哀求处理赏罚的流程框架,好比回收传统的3层架构可能DDD战术模式
  • 提供同等的非常返回(请参考“非常处理赏罚”末节)
  • 提供同一的分页布局类
  • 明晰测试分类以及同一的测试基本类(请参考“自动化测试分类”末节)

静态代码搜查

静态代码搜查首要包括以下Gradle插件,详细设置请参考本文示例代码:

  • Checkstyle:用于搜查代码名目,类型编码气魄威风凛凛
  • Spotbugs:Findbugs的担任者
  • Dependency check:OWASP提供的Java类库安详性搜查
  • Sonar:用于代码一连改造的跟踪

康健搜查

康健搜查首要用于以了局景:

  • 我们但愿起源搜查措施是否运行正常
  • 有些负载平衡软件会通过一个康健搜查URL判定节点的可达性

此时,可以实现一个简朴的API接口,该接口不受权限管控,可以果真会见。假如该接口返回HTTP的200状态码,便可起源以为措施运行正常。另外,我们还可以在该API中插手一些特另外信息,好比提交版本号、构建时刻、陈设时刻等。

启动本文的示例项目:

  1. ./run.sh 

然后会见康健搜查API:http://localhost:8080/about,功效如下:

  1.   requestId: "698c8d29add54e24a3d435e2c749ea00", 
  2.   buildNumber: "unknown", 
  3.   buildTime: "unknown", 
  4.   deployTime: "2019-04-11T13:05:46.901+08:00[Asia/Shanghai]", 
  5.   gitRevision: "unknown", 
  6.   gitBranch: "unknown", 
  7.   environment: "[local]" 

以上接口在示例项目顶用了一个简朴的Controller实现,究竟上Spring Boot的Acuator框架也可以或许提供相似的成果。

API文档

软件文档的难点不在于写,而在于维护。几多次,当我比较着项目文档一步一步往下走时,总得不到正确的功效,问了同事之后获得回覆“哦,谁人已颠末期了”。本文示例项目所回收的Swagger在必然水平上低落了API维护的本钱,由于Swagger能自动辨认代码中的要领参数、返回工具和URL等信息,然后自动地及时地建设出API文档。

设置Swagger如下:

  1. @Configuration 
  2. @EnableSwagger2 
  3. @Profile(value = {"local", "dev"}) 
  4. public class SwaggerConfiguration { 
  5.  
  6.     @Bean 
  7.     public Docket api() { 
  8.         return new Docket(SWAGGER_2) 
  9.                 .select() 
  10.                 .apis(basePackage("com.ecommerce.order")) 
  11.                 .paths(any()) 
  12.                 .build(); 
  13.     } 

启动当地项目,会见http://localhost:8080/swagger-ui.html:

后端开拓实践系列——Spring Boot项目模板

Swagger API文档

数据库迁徙

在传统的开拓模式中,数据库由专门的运维团队可能DBA来维护,要对数据库举办修改必要向DBA申请,告之迁徙内容,最后由DBA认真数据库改观实验。在一连交付和DevOps行为中,这些事变慢慢提前到开拓进程,虽然并不是说不必要DBA了,而是这些事变可以由开拓者和运维职员一同完成。其它,在微处事场景下,数据库被包括在单个处事的界线之内,因此基于内聚性原则(咦,这仿佛是本文第三次提到内聚原则了,可见其在软件开拓中的重要性),数据库的改观最好也与项目代码一道维护在代码库中。

本文的示例项目回收了Flyway作为数据库迁徙器材,插手了Flyway依靠后,在src/main/sources/db/migration目次下建设迁徙剧本文件即可:

  1. resources/ 
  2. ├── db 
  3. │   └── migration 
  4. │       ├── V1__init.sql 
  5. │       └── V2__create_product_table.sql 

迁徙剧本的定名必要遵循必然的法则以担保剧本执行次序,其它迁徙文件见效之后不要恣意修改,由于Flyway会搜查文件的checksum,假如checksum纷歧致将导致迁徙失败。

多情形构建

(编辑:湖南网)

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

热点阅读