Springboot简单介绍spring配置繁琐依赖繁琐快速使用spring的方式无功能上的增强自动配置起步依赖IDEA创建spring项目文件夹组成db sql文件导入到数据库src 主要代码结构intercetor 拦截层详情观看视频 后端Springboot每个文件夹的作用pom.xml 是什么可以理解为项目的购物清单告诉 Maven 这个项目需要哪些依赖库、用什么 Java 版本、怎么打包。你在 IDEA 创建时勾选的那些依赖Spring Web、MySQL Driver 等都会自动写进这个文件。创建之后还需要配置吗pom.xml 本身一般不用手动改但后续如果需要加新功能要往里面添加依赖。比如想加 JWT 登录认证dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt/artifactId version0.9.1/version /dependency加完保存IDEA 右上角会提示刷新 Maven点一下就自动下载了。前后端分离架构客户端发送登录请求到后端 Controller(给前端调用的接口Controller 收到请求后调用 Service 的业务逻辑Service 调用 Mapper(repository) 对数据库进行查询Mapper 查询完成后把实体对象User返回给 ServiceService 处理业务逻辑判断用户是否存在、密码是否正确等如果有问题就抛出异常如果成功就把 User 对象返回给 ControllerController 收到后生成token再用Result 封装成统一格式返回给前端。前端收到响应后判断 code 是否为 200成功则把 token 存入localStorage然后用router跳转到对应页面失败则弹出后端返回的错误信息。三层分别负责什么每一层只做一件事Controller → 我只管接电话 收到请求、检查参数格式、返回结果 不关心数据怎么存的 Service → 我只管做决策 注册用户要不要查重要不要发邮件 不关心数据库怎么操作 Repository → 我只管跑腿 你让我存我就存让我查我就查 不关心业务逻辑是什么不用自己敲repository或者mapper的简便方法1. MyBatis GeneratorMBG根据数据库表自动生成 Entity、Mapper 接口、Mapper.xml配置一个generatorConfig.xml跑一下直接生成不用手写。2. MyBatis Plus最推荐不仅能生成平时简单的增删改查完全不用写 SQL// 继承 BaseMapper基础方法全有了 public interface UserMapper extends BaseMapperUser { // 不用写任何东西insert/delete/update/select 都有了 }还有代码生成器一键生成整个项目结构Entity、Mapper、Service、ServiceImpl、Controller全部自动生成好。3. IDEA 插件EasyCode— 右键数据库表直接生成所有层的代码MyBatisX— 专门针对 MyBatis自动补全 SQL生成模板推荐组合MyBatis Plus IDEA EasyCode 插件连数据库 → 选表 → 右键生成 → Entity/Mapper/Service/Controller 全出来了然后在这基础上改业务逻辑就行。基础练习跟敲熟悉第一步用 Spring Initializr 创建项目打开 https://start.spring.io按下面配置项目选择ProjectMavenLanguageJavaSpring Boot3.x最新稳定版PackagingJarJava17Dependencies 点击 ADD加这三个Spring WebSpring Data JPAMySQL Driver点GENERATE下载解压用 IntelliJ 打开。第二步项目结构在com.example.demo下手动建这四个文件夹entity、repository、service、controller。第三步配置 MySQL打开src/main/resources/application.properties填入spring.datasource.urljdbc:mysql://localhost:3306/你的数据库名?useSSLfalseserverTimezoneUTC spring.datasource.usernameroot spring.datasource.password你的密码 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-autoupdate spring.jpa.show-sqltrueddl-autoupdate的意思是启动时 JPA 自动帮你建表不用手写 SQL 建表。先在 MySQL 里建好数据库表不用建JPA 自动建CREATE DATABASE demo;第四步逐个文件手敲User.java实体对应数据库表package com.example.demo.entity; import jakarta.persistence.*; Entity Table(name user) public class User { Id GeneratedValue(strategy GenerationType.IDENTITY) private Long id; private String name; private Integer age; // 无参构造JPA必须有 public User() {} public User(String name, Integer age) { this.name name; this.age age; } // getter setter public Long getId() { return id; } public String getName() { return name; } public void setName(String name) { this.name name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age age; } }UserRepository.java数据层JPA帮你实现package com.example.demo.repository; import com.example.demo.entity.User; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepositoryUser, Long { // 不用写任何方法JPA 自动提供 // save() / findById() / findAll() / deleteById() 等 }这个文件就这几行JPA 会自动实现所有基础操作。UserService.java接口package com.example.demo.service; import com.example.demo.entity.User; import java.util.List; public interface UserService { User save(User user); User findById(Long id); ListUser findAll(); }UserServiceImpl.java逻辑实现package com.example.demo.service; import com.example.demo.entity.User; import com.example.demo.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; Service public class UserServiceImpl implements UserService { Autowired private UserRepository userRepository; Override public User save(User user) { return userRepository.save(user); } Override public User findById(Long id) { return userRepository.findById(id).orElse(null); } Override public ListUser findAll() { return userRepository.findAll(); } }UserController.java接收请求package com.example.demo.controller; import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; RestController RequestMapping(/users) public class UserController { Autowired private UserService userService; // 新增用户POST /users PostMapping public User save(RequestBody User user) { return userService.save(user); } // 查单个GET /users/1 GetMapping(/{id}) public User findById(PathVariable Long id) { return userService.findById(id); } // 查全部GET /users GetMapping public ListUser findAll() { return userService.findAll(); } }第五步启动 测试用 IDEA 自带 HTTP 客户端测试第一步在src/main/resources下新建一个文件命名test.http第二步### 新增用户 POST http://localhost:8080/users Content-Type: application/json {name:张三,age:25} ### 查全部用户 GET http://localhost:8080/users ### 查单个用户 GET http://localhost:8080/users/1第三步每段代码左边都有个绿色▶点POST那段的▶先跑一下GET http://localhost:8080/users/1 GET http://localhost:8080/users
Springboot学习笔记
发布时间:2026/6/2 1:30:12
Springboot简单介绍spring配置繁琐依赖繁琐快速使用spring的方式无功能上的增强自动配置起步依赖IDEA创建spring项目文件夹组成db sql文件导入到数据库src 主要代码结构intercetor 拦截层详情观看视频 后端Springboot每个文件夹的作用pom.xml 是什么可以理解为项目的购物清单告诉 Maven 这个项目需要哪些依赖库、用什么 Java 版本、怎么打包。你在 IDEA 创建时勾选的那些依赖Spring Web、MySQL Driver 等都会自动写进这个文件。创建之后还需要配置吗pom.xml 本身一般不用手动改但后续如果需要加新功能要往里面添加依赖。比如想加 JWT 登录认证dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt/artifactId version0.9.1/version /dependency加完保存IDEA 右上角会提示刷新 Maven点一下就自动下载了。前后端分离架构客户端发送登录请求到后端 Controller(给前端调用的接口Controller 收到请求后调用 Service 的业务逻辑Service 调用 Mapper(repository) 对数据库进行查询Mapper 查询完成后把实体对象User返回给 ServiceService 处理业务逻辑判断用户是否存在、密码是否正确等如果有问题就抛出异常如果成功就把 User 对象返回给 ControllerController 收到后生成token再用Result 封装成统一格式返回给前端。前端收到响应后判断 code 是否为 200成功则把 token 存入localStorage然后用router跳转到对应页面失败则弹出后端返回的错误信息。三层分别负责什么每一层只做一件事Controller → 我只管接电话 收到请求、检查参数格式、返回结果 不关心数据怎么存的 Service → 我只管做决策 注册用户要不要查重要不要发邮件 不关心数据库怎么操作 Repository → 我只管跑腿 你让我存我就存让我查我就查 不关心业务逻辑是什么不用自己敲repository或者mapper的简便方法1. MyBatis GeneratorMBG根据数据库表自动生成 Entity、Mapper 接口、Mapper.xml配置一个generatorConfig.xml跑一下直接生成不用手写。2. MyBatis Plus最推荐不仅能生成平时简单的增删改查完全不用写 SQL// 继承 BaseMapper基础方法全有了 public interface UserMapper extends BaseMapperUser { // 不用写任何东西insert/delete/update/select 都有了 }还有代码生成器一键生成整个项目结构Entity、Mapper、Service、ServiceImpl、Controller全部自动生成好。3. IDEA 插件EasyCode— 右键数据库表直接生成所有层的代码MyBatisX— 专门针对 MyBatis自动补全 SQL生成模板推荐组合MyBatis Plus IDEA EasyCode 插件连数据库 → 选表 → 右键生成 → Entity/Mapper/Service/Controller 全出来了然后在这基础上改业务逻辑就行。基础练习跟敲熟悉第一步用 Spring Initializr 创建项目打开 https://start.spring.io按下面配置项目选择ProjectMavenLanguageJavaSpring Boot3.x最新稳定版PackagingJarJava17Dependencies 点击 ADD加这三个Spring WebSpring Data JPAMySQL Driver点GENERATE下载解压用 IntelliJ 打开。第二步项目结构在com.example.demo下手动建这四个文件夹entity、repository、service、controller。第三步配置 MySQL打开src/main/resources/application.properties填入spring.datasource.urljdbc:mysql://localhost:3306/你的数据库名?useSSLfalseserverTimezoneUTC spring.datasource.usernameroot spring.datasource.password你的密码 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-autoupdate spring.jpa.show-sqltrueddl-autoupdate的意思是启动时 JPA 自动帮你建表不用手写 SQL 建表。先在 MySQL 里建好数据库表不用建JPA 自动建CREATE DATABASE demo;第四步逐个文件手敲User.java实体对应数据库表package com.example.demo.entity; import jakarta.persistence.*; Entity Table(name user) public class User { Id GeneratedValue(strategy GenerationType.IDENTITY) private Long id; private String name; private Integer age; // 无参构造JPA必须有 public User() {} public User(String name, Integer age) { this.name name; this.age age; } // getter setter public Long getId() { return id; } public String getName() { return name; } public void setName(String name) { this.name name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age age; } }UserRepository.java数据层JPA帮你实现package com.example.demo.repository; import com.example.demo.entity.User; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepositoryUser, Long { // 不用写任何方法JPA 自动提供 // save() / findById() / findAll() / deleteById() 等 }这个文件就这几行JPA 会自动实现所有基础操作。UserService.java接口package com.example.demo.service; import com.example.demo.entity.User; import java.util.List; public interface UserService { User save(User user); User findById(Long id); ListUser findAll(); }UserServiceImpl.java逻辑实现package com.example.demo.service; import com.example.demo.entity.User; import com.example.demo.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; Service public class UserServiceImpl implements UserService { Autowired private UserRepository userRepository; Override public User save(User user) { return userRepository.save(user); } Override public User findById(Long id) { return userRepository.findById(id).orElse(null); } Override public ListUser findAll() { return userRepository.findAll(); } }UserController.java接收请求package com.example.demo.controller; import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; RestController RequestMapping(/users) public class UserController { Autowired private UserService userService; // 新增用户POST /users PostMapping public User save(RequestBody User user) { return userService.save(user); } // 查单个GET /users/1 GetMapping(/{id}) public User findById(PathVariable Long id) { return userService.findById(id); } // 查全部GET /users GetMapping public ListUser findAll() { return userService.findAll(); } }第五步启动 测试用 IDEA 自带 HTTP 客户端测试第一步在src/main/resources下新建一个文件命名test.http第二步### 新增用户 POST http://localhost:8080/users Content-Type: application/json {name:张三,age:25} ### 查全部用户 GET http://localhost:8080/users ### 查单个用户 GET http://localhost:8080/users/1第三步每段代码左边都有个绿色▶点POST那段的▶先跑一下GET http://localhost:8080/users/1 GET http://localhost:8080/users