使用Idea搭建Spring-boot微服务

 新建项目

 选择Spring Initializer

 

 填写和选择相关配置

 

 依赖选择

 

  •  Spring boot devtools,热部署工具
  •  Spring configuration processor, 配置处理器,Spring常用yml配置文件,当碰到xml或者properties时,需要解析,就用到了这个依赖
  • spring-web 依赖包含Servlet和Portlet环境中常用的web特定工具

 Spring session

  • 提供用户session管理的API和实现
  • 提供HttpSession,以中立的方式取代web容器的session,比如tomcat中的session
  • 支持集群的session处理,不必绑定到具体的web容器去解决集群下的session共享问题

 Spring Web Services(Spring WS)

 是基于 Spring 框架的 Web 服务框架,主要侧重于基于文档驱动的Web服务,提供 SOAP 服务开发,允许通过多种方式创建 Web 服务

 

 Spring security

  • 认证 (你是谁)
  • 授权 (你能干什么)
  • 攻击防护 (防止伪造身份) 

 其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在spring security中一种过滤器处理一种认证方式

 

 Spring Data JPA

 JPA(Java persistence API),意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR 338,这些接口所在包为javax.persistence,详细内容可参考https://github.com/javaee/jpa-spec

 JPA的出现主要是为了简化持久层开发以及整合ORM技术,结束Hibernate、TopLink、JDO等ORM框架各自为营的局面。

 JPA是在吸收现有ORM框架的基础上发展而来,易于使用,伸缩性强。

 总的来说,JPA包括以下3方面的技术:

  • ORM映射元数据: 支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系
  • API: 操作实体对象来执行CRUD操作
  • 查询语言: 通过面向对象而非面向数据库的查询语言(JPQL)查询数据,避免程序的SQL语句紧密耦合

 数据库迁移工具(Migration)

 Liquibase和flyway的侧重点不同

 Flyway(适合个人小项目)

  1. 易于配置-只需要一个文件夹位置,并保持名称语法V1__file.sql
  2. 基于SQL的,但需要编写特定数据库引擎的正确语法(MySQL、DB2、
  3. 是基于Java的,所以添加自定义配置来清理、执行等更容易。

 Liquibase(适合企业级应用,大项目)

  1. 需要一个主文件“Changelog”来跟踪所有已执行的变更集。
  2. 是基于XML的,因此你需要使用特定的清算基标记来创建SQL代码。这对于将代码迁移到不同的DB引擎是完美的:你不需要更改任何东西,只有DB驱动程序将告诉清算库如何将XML标记转换为正确的SQL语法。
  3. 如果使用来自液化库的SQL标记,那么将不会利用第2点,所以最好使用Flyway。
  4. Liquibase提供了一个JAR来自动将现有DB迁移到所有需要的XML文件,因此不需要手动处理它们。非常有用。

 

 Spring Validation

  • Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。
  • hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。
  • Spring Validation是对hibernate validation的二次封装,用于支持spring mvc参数自动校验。

 

 Testcontainers

 TestContainers太棒了! 它提供了一种非常方便的方法来启动和清除JUnit测试中的Docker容器。 此功能对于将应用程序与真实数据库以及可使用docker映像的任何其他资源进行集成测试非常有用

 Contract verifier

 通过支持消费者驱动的契约(CDC)开发,将TDD提升到软件体系结构的级别

 然后点击next,我们就可以愉快的通过官方网站的文档来做简单的小项目了!

 如果涉及到分布式,集群之类的大系统,还需要使用Spring cloud的api以及各种数据监控,队列,测试系统等

原文地址:https://www.cnblogs.com/YC-L/p/14286173.html