使用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(适合个人小项目)
- 易于配置-只需要一个文件夹位置,并保持名称语法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以及各种数据监控,队列,测试系统等
作者:BigBender
出处:https://www.cnblogs.com/BigBender/p/14286173.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!