SpringBoot学习笔记

Spring Boot 是一个基于 Java 的开源框架,用于以最小的工作量编写独立的、生产级的基于 Spring 的应用程序。Spring Boot 是 Spring Java 平台的约定优先于配置的扩展,旨在帮助在创建基于 Spring 的应用程序时最大程度地减少配置问题。

由于其易用性和健壮性,它被广泛用于构建微服务、Web 应用程序和其他基于 Java 的项目。

常用工具介绍

mvn repository

访问地址如下,用于查找Jar包

当前很多项目使用mvn打包多模块,请参考:

MyBatis

MyBatis-Plus

请参考:

代码生成器新,请参考:

SWagger

Swagger是一个可以根据你的代码,自动生成接口文档的一个工具,并且可以用作接口测试工具。

请参考:

跨域问题

在用SpringBoot开发后端服务时,我们一般是提供接口给前端使用,但前端通过浏览器调我们接口时,浏览器会有个同源策略的限制,即协议,域名,端口任一不一样时都会导致跨域,这篇文章主要介绍跨域的几种常用解决方案。

具体方案请参考:

测试跨域问题

注意,当前以下代码无法在最新的Chrome浏览器控制台运行:

1
2
3
4
5
6
7
8
var xhr = new XMLHttpRequest()
xhr.open('GET', 'http://localhost:9090/user') // 替换请求的方法和地址
xhr.send()
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText)
}
}

可使用Postman进行跨域测试,请参考:

具体原理是:跨域问题源于浏览器同源策略,Postman 提供了模拟 CORS 请求的便捷方法,通过设置 Origin 字段和测试跨域请求,可检查响应头中的Access-Control-Allow-Origin等信息。

maven父子工程中的依赖引用

请参考:

注解

@AliasFor注解

请参考:

@Component注解

请参考:

@Service注解

请参考:

@Configuration注解

请参考:

@Aspect 注解

请参考:

@RestControllerAdvice注解

请参考:

Actuator

在Spring Boot应用中,只需要依赖组件spring-boot-starter-actuator。它提供了很多监控和管理你的Spring Boot应用的HTTP或者JMX端点,并且你可以有选择地开启和关闭部分功能。当你的Spring Boot应用中引入依赖之后,将自动拥有审计、健康检查、Metrics监控等功能。

请参考:

实体类划分

在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除二者之外需要进行传递的数据。

  • VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

  • DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。

  • DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

  • PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。

请参考:

Spring Security

请参考:

PageHelper分页插件

请参考:

代码自动生成

请参考:

定时任务

请参考:

部署方式

请参考:

参考链接

  1. Spring Boot,by spring.
  2. 从0开始带你手撸一套SpringBoot+Vue后台管理系统,让小白能跟着学会的项目实战,by 程序员青戈.
  3. SpringBoot 项目解决跨域的几种方案,by JK凯.
  4. springboot3.x集成SpringDoc Swagger3,by 咚咚阳.
  5. mvnrepository,by mvn.
  6. Spring中 Service和ServiceImpl的选择,by leeindex.