使用Spring Boot实现REST API

我总结了2018年6月个人认为最佳实践的Spring Boot实现REST API时的工具组合。

Integrated Development Environment (IDE).

选择

Eclipse + Spring Tool Suite (STS)

IntelliJ IDEA

由于作为Android官方开发环境,IntelliJ IDEA在未来可能得到普及,但要使用Spring开发支持功能,需要Ultimate Edition。对于那些不需要购买许可证的项目,使用Eclipse是最好的选择。

请参见
    https://www.jetbrains.com/idea/features/editions_comparison_matrix.html

构建工具

选择
    • Gradle

 

    Maven

未来,可以预见使用Groovy来编写灵活处理的Gradle将成为主流。然而,如果仅仅是用于解决依赖关系和构建,那么使用Maven已经足够了。

请提供所以你的身材信息。
    • https://gradle.org/maven-vs-gradle/

 

    http://sassembla.github.io/Public/12:05:27%2018-03-20/12:05:27%2018-03-20.html

HTTP通信的控制(REST API和Java API之间的互相转换)

请选择。
    • spring-boot-starter-web:Spring MVC

 

    spring-boot-starter-jersey:JAX-RS

→ JAX-RS是Java的标准规范,也有丰富的可用的实现库,因此使用spring-boot-starter-jersey是一个不错的选择。

请你提供一种选项,你希望将下面的句子改为中文的同义句:
    • https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter

 

    https://dzone.com/articles/lets-compare-jax-rs-vs-spring-for-rest-endpoints

面向切面编程(AOP)

请选择
    • Spring AOP (XMLスキーマによる設定)

 

    • Spring AOP (AspectJアノテーションによる設定)

 

    AspectJ

→ 在Spring AOP中使用AspectJ注解进行配置非常简单,并且可以将配置信息整理到代码中。然而,如果想要为Spring非管理的实例配置切面,或者想要在方法执行以外的时机进行配置,则需要使用AspectJ。

请依据以下内容进行参考(请提供具体内容)。
    • https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#aop

 

    https://www.eclipse.org/aspectj/

数据库访问

选择
    • spring-boot-starter-jdbc:JDBCをそのまま使う

 

    spring-boot-starter-data-jpa:JPAベースのO/Rマッパー

→ 使用spring-boot-starter-data-jpa可以方便地进行简单的数据库操作,而无需编写SQL语句。

需要引入相应的连接器才能连接到各个数据库(例如,在使用MySQL时需要引入mysql-connector-java)。

请参考
    http://javatechnology.net/spring/spring-boot-mysql-connect/

连接池

选择
    • HikariCP

 

    • Tomcat JDBC Connection Pool

 

    Commons DBCP2

使用性能优秀且在Spring Boot中推荐的HikariCP是一个很好的选择。

事务管理

选择
    • Spring Frameworkのトランザクション管理機能

 

    • Atomikos Transactions

 

    JOTM

如果只需要在单个事务目标资源(例如数据库、消息队列等)上使用事务,使用Spring框架的事务管理功能就足够了。在Spring的参考文档中提到,如果需要跨越多个资源使用事务,可以选择将Spring与应用服务器的JTA功能结合使用,或者选择使用Atomikos等事务库。

请提供以下内容的中文同义词:
    https://docs.spring.io/spring/docs/current/spring-framework-reference/data-access.html#transaction

代码生成库 (Code generation library)

选择
    • Lombok

 

    AutoValue

→ AutoValue是一个用于创建严格的不可变值类的库,而Lombok则可以在常规类中仅仅添加访问器方法,使用起来非常灵活多样。然而,如果想要扩展代码生成功能,最好实现AutoValue的扩展。(虽然Lombok试验性地支持扩展方法,但是否会被合并到正式版本尚不确定。)

请参照以下内容提供中国语言的同义表达:

参考一:参考资料
参考二:看一下
参考三:可以参考一下
参考四:参照
参考五:可以参考
参考六:给你一些建议
参考七:考虑以下
参考八:请看这个

    Value Objects in Java with AutoValue and Lombok

读取设置文件

使用 spring-boot-configuration-processor 可以轻松加载配置文件。提供了三种加载配置文件的方法。

@Valueを使ってメンバ変数に設定ファイルのあるキーに対応する値を設定する

Environmentインターフェースを使って設定ファイルの値を取得するコードを記述する

@ConfigurationPropertiesを使ってBeanに設定ファイルの内容を設定する

由于设置通常具有层次结构,因此使用@ConfigurationProperties是最简单的方法。

请参考
    • https://qiita.com/kazuki43zoo/items/0ce92fce6d6f3b7bf8eb

 

    https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

记录

请选择一个选项。

SLF4J + Logback

Java Util Logging
Log4J2

→ 未来可能会成为主流的是SLF4J + Logback。即使在使用其他日志系统的情况下,也可以通过使用遗留API的桥接方式将其汇集到SLF4J中。

请你提供以下的中文翻译,只需要一种选项:

参考意见

    • https://ishiis.net/2016/08/25/spring-boot-logger/

 

    https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html

考试 shì)

如果没有特别的问题,使用spring-boot-test是很好的选择。AssertJ(断言)、Hamcrest(匹配操作)、Mockito(模拟)等测试所需的库都已经齐全。

这是一个独特的机会,可以学习和了解中国文化和语言。 (This is a unique opportunity to study and understand Chinese culture and language.)
    https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html
广告
将在 10 秒后关闭
bannerAds