Spring Boot
TUTsmile
2020届毕业生,博客作为个人的学习笔记,希望能够给各位提供参考价值,若不明白可以评论或私信,第一时间回复、修改博客
展开
-
Spring Boot学习笔记(二十一)Spring boot 数据校验 @Validated、@Valid用法详解
文章目录约束注解(大多为 `javax.validation.constraints` 下的注解)启用校验使用消息示例进阶总结后端数据校验(JSR303/JSR-349、javax validation、hibernate validation、spring validation)后端数据校验如:请求参数不能为null、数值至少为5、email参数符合邮箱地址规则等,通常涉及到上述几种工具,其区别:JSR303/JSR-349、javax validation:JSR303是一项标准、JSR-349转载 2020-08-27 14:52:05 · 1895 阅读 · 0 评论 -
Spring Boot学习笔记(二十)拦截器设计、开发、多拦截器的顺序讲解
1. 拦截器的设计所有的拦截器都需要继承HandlerInterceptor接口,该接口源码如下public interface HandlerInterceptor { /** * 在请求处理之前进行调用(Controller方法调用之前) */ default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Ex原创 2020-08-26 13:54:10 · 939 阅读 · 0 评论 -
Spring Boot学习笔记(十九)使用@RestControllerAdvice 统一返回信息格式,统一处理错误返回给前端的信息
参考Spring Boot @RestControllerAdvice 统一异常处理、@RestControllerAdvice构造统一返回值格式和统一异常处理、SpringBoot 使用 beforeBodyWrite 实现统一的接口返回类型1.创建好我们的统一返回格式//这些是lombok的注解@Data@NoArgsConstructor @AllArgsConstructorpublic class CommonResponse<T> { private boolea原创 2020-08-25 16:58:00 · 3774 阅读 · 2 评论 -
Spring Boot学习笔记(十八)如何使用@NotBlank进行空校验,以及@NotBlank 与 @Valid 搭配无效的解决办法
我们的Controller如下所示import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid;@RestControllerpublic原创 2020-08-24 19:49:34 · 3808 阅读 · 0 评论 -
2020.8.19 解决Spring boot 中 使用redis进行缓存时乱码的问题
关于springboot 中使用 redis缓存的详细介绍,可以看我的文章:Spring Boot学习笔记(十七)整合 mysql、mybatis-plus 使用redis进行缓存解决办法很简单,添加一个配置文件即可,文件路径没有什么要求,因为 spring boot是根据 @Configuration 注解来进行配置重点的代码是:RedisSerializer.string()、RedisSerializer.json()@Configurationpublic class RedisCon原创 2020-08-19 17:32:17 · 307 阅读 · 0 评论 -
Spring Boot学习笔记(十七)整合 mysql、mybatis-plus 使用redis进行缓存(带工程源码)
文章目录1. 给springboot 工程添加pom依赖2. 在application中进行配置3. 启用缓存机制4. 开发缓存注解4.1 编写实体类SpringBootUser4.2 编写mybatis-plus相关文件4.3 编写调用方法1. 给springboot 工程添加pom依赖 <dependency> <groupId>mysql</groupId> <artifactId>mys原创 2020-08-19 17:23:53 · 1234 阅读 · 1 评论 -
Spring Boot学习笔记(十六)@Autowired和使用 new()区别
1.使用上的区别大家在使用@Autowired注解的时候,肯定会有疑惑,这个地方我使用@Autowired注入,和我使用new,这种写法的作用有什么区别呢?最重要的一点,使用new创建的对象,无法调用Spring容器内的实例。即 new出来的对象无法调用@Autowired注入的Spring Bean,否则报空指针异常,@Autowired注入Spring Bean,则当前类必须也是Spring Bean才能调用它,不能用new xxx()来获得对象,这种方式获得的对象无法调用@Autowired注原创 2020-08-13 16:06:27 · 4197 阅读 · 0 评论 -
Spring Boot学习笔记(十五)mybatis(二)mybatis常用增删改查xml
我们利用以下sql,准备好我们的数据库-- 若有则删除DROP DATABASE IF EXISTS `blog_db`;-- 创建数据库CREATE DATABASE `blog_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 用户表CREATE TABLE `blog_db`.`user` ( `id` BIGINT NOT NULL AUTO_INCREMENT , `name` VARCHAR(45) NOT转载 2020-08-02 17:16:00 · 190 阅读 · 0 评论 -
Spring Boot学习笔记(十四)mybatis(一)使用IDEA 整合SpringBoot + mybatis详细流程(有工程源码)
发现一个教程:乐天笔记Mybatis (https://www.letianbiji.com/mybatis/),个人感觉很不错,他使用gradle搭建的SpringBoot,由于公司用maven搭建工程,所以此处我做了maven工程的SpringBoot和Mybatis整合原创 2020-07-30 11:34:57 · 295 阅读 · 0 评论 -
Spring Boot学习笔记(十三)事务(二)Spring boot事务使用(@Transactional声明式、编程式)
文章目录一、Spring boot 声明式使用(@Transactional)声明式事务配置参考注解事务@Transactional个人使用Spring Boot学习笔记(十一)SpringBoot 整合 jdbcTemplate(附带工程源码)的工程进行展示一、Spring boot 声明式使用(@Transactional)声明式事务配置参考事物配置中有哪些属性可以配置?以下只是简单的使用参考(详细解释可见 什么是事务?事务的概念解释)事务的传播性:@Transactional(propa原创 2020-07-29 19:42:03 · 510 阅读 · 1 评论 -
Spring Boot学习笔记(十二)事务(一) 什么是事务?事务的概念解释
本文转自有关Spring事务,看这一篇就足够了,仅进行了些许修改文章目录Spring事务传播机制事务的特性Spring事务的配置方式1. 编程式事务管理(手动实现回滚)2. 声明式事务管理(注解实现)事务的传播机制事务的隔离级别只读事务超时回滚规则Spring声明式事务配置参考本文将按照声明式事务的五个特性进行介绍:事务传播机制事务隔离机制只读事务超时回滚规则Spring事务传播机制事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要转载 2020-07-29 17:24:04 · 307 阅读 · 0 评论 -
Spring Boot学习笔记(十一)SpringBoot 整合 jdbcTemplate(附带工程源码)
为了方便学习,我们直接创建一个新的Spring Boot工程,勾选web的Spring web、Sql的Spring Data JDBC、Spring MySql Driver即可Spring boot 工程后,添加以下依赖:原创 2020-07-29 15:04:31 · 301 阅读 · 0 评论 -
Spring Boot学习笔记(十)AOP底层原理(JDK动态代理)以及术语、以及应用(Aspect)
一、底层实现原理(JDK动态代理)AOP的底层实践是使用了java.lang.reflect.Proxy的newProxyInstance方法有三个参数:loader:class 加载器,你在某个类下使用Proxy.newProxyInstance,就使用该类的class加载器。interfaces:接口数组h :invocationHandler 即增强方法的处理方式根据这几个参数,我们开始编写我们的代码。首先是接口,代码如下public interface UserDao {原创 2020-07-28 20:27:03 · 713 阅读 · 0 评论 -
Spring Boot学习笔记(九)@Controller 注解的简单使用
需要一点Ajax或者Axios可以更好的理解此篇文章我们创建了Spring boot 的web项目之后,就需要用@Controller,直接上代码:一、示例代码,快速上手@Controllerpublic class HelloWorldController {// 请求的映射地址 @RequestMapping("/helloWorld")// @ResponseBody注释 会将 返回的东西会直接放入body中 @ResponseBody public原创 2020-07-28 20:25:51 · 610 阅读 · 0 评论 -
Spring Boot学习笔记(八)spring中如何使用监听器(Listener)监听事件,完整例子
完整介绍spring 监听的三部分,有完整的代码展示原创 2020-07-21 13:52:33 · 554 阅读 · 0 评论 -
Spring Boot学习笔记(七)Spring 中 InitializingBean 作用(如何在项目初始化时对常用数据进行缓存)
一、InitializingBean 的作用InitializingBean作为一个接口,只有一个需要重写的方法@Compomentspublic class LearnClass implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { System.out.println("成功调用afterPropertiesSet"); }}Sp原创 2020-07-20 15:46:44 · 2937 阅读 · 0 评论 -
Spring Boot学习笔记(六)Spring Data Jpa 快速上手(五)多对多@ManyToMany 以及级联操作
阅读此文章需要有基础的jpa知识,此处不讲述entity、repository。可以查看我之前的文章Spring Data Jpa 快速上手(一)使用spring data jpa 实现增删改查1.创建表和实体类此次我们使用最常见的多对多关系,用户与角色,一个用户可以拥有多个角色,一个角色也可以被多个用户拥有。此时我们需要一个中间表保持两者的关系,因为我们通常是赋予用户某个角色,即以修改用户为主体,即虽然是多对多,但仍可视为User为主,Role为从,所以中间表在User中进行维护。此外,大家可以发原创 2020-05-13 17:26:32 · 592 阅读 · 1 评论 -
Spring Boot学习笔记(五)Spring Data Jpa 快速上手(四)多对一@ManyToOne、一对多@OneToMany,以及级联操作
建立表、实体类@Entity@Table(name = "cst_customer")@Datapublic class Customer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "cust_id") private Integer custId; @Column(name = "cust_address") private String cus原创 2020-05-13 15:27:44 · 902 阅读 · 0 评论 -
Spring Boot学习笔记(四)Spring Data Jpa 快速上手(三) jpa、jpql的多条件查询与动态查询、Specification动态查询 与 PageRequest 分页
1.多条件查询多条件查询可按照我写的Spring Data Jpa 快速上手(二) jpa命名规则 与 Jpql、Sql通过命名完成多条件查询,多个条件之间用And连接例子如下:public interface UserEntityRepository extends CrudRepository<UserEntity,Integer> {// 多条件查询的命名规则// findBy + 属性名称 + “查询方式” + “多条件的连接符(and | or)” + 属性名称原创 2020-05-13 00:04:20 · 707 阅读 · 0 评论 -
Spring Boot学习笔记(三)Spring Data Jpa 快速上手(二) jpa命名规则 与 Jpql、Sql
1.1 Jpa命名规则采用小驼峰命名法关键字方法命名sql where字句AndfindByNameAndPwdwhere name= ? and pwd =?OrfindByNameOrSexwhere name= ? or sex=?Is,EqualsfindById,findByIdEqualswhere id= ?BetweenfindByIdBetweenwhere id between ? and ?LessThanfindBy原创 2020-05-12 00:05:00 · 631 阅读 · 0 评论 -
Spring Boot学习笔记(二)Spring Data Jpa 快速上手(一)使用spring data jpa 实现增删改查,Spring boot进行单元测试
环境准备在你的application.properties进行如下设置其中datasource.sul,username和password写自己的数据库配置spring.datasource.url=jdbc:mysql://localhost:3306/db_example?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTCspri原创 2020-05-11 12:02:52 · 340 阅读 · 0 评论 -
Spring Boot学习笔记(一)在IDEA 中创建 Hello world工程
现在实习的公司中,后端采用java + spring boot,前端采用vue.js框架。我将会在此记录我所学的知识,希望给将来要从事软件行业的人一点帮助。环境准备请安装IDEA 专业版,因为IDEA专业版中有...原创 2019-07-22 17:02:54 · 390 阅读 · 1 评论