新建项目
选择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(适合个人小项目)
- 易于配置-只需要一个文件夹位置,并保持名称语法V1__file.sql
- 基于SQL的,但需要编写特定数据库引擎的正确语法(MySQL、DB2、
- 是基于Java的,所以添加自定义配置来清理、执行等更容易。
Liquibase(适合企业级应用,大项目)
- 需要一个主文件“Changelog”来跟踪所有已执行的变更集。
- 是基于XML的,因此你需要使用特定的清算基标记来创建SQL代码。这对于将代码迁移到不同的DB引擎是完美的:你不需要更改任何东西,只有DB驱动程序将告诉清算库如何将XML标记转换为正确的SQL语法。
- 如果使用来自液化库的SQL标记,那么将不会利用第2点,所以最好使用Flyway。
- 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以及各种数据监控,队列,测试系统等