
【微服务-SpringBoot】
文章平均质量分 78
SpringBoot是一个基于Spring的框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。具有开箱即用和约定优于配置的策略。
一棵树~
just do it
展开
-
SpringBoot内置工具类详解
SpringBoot内置工具类详解。原创 2022-07-15 16:33:25 · 503 阅读 · 0 评论 -
SpringBoot启动报错:Failed to load property source from location ‘classpath:/bootstrap.yml‘
1、报错日志17:18:24.513 [main] ERROR org.springframework.boot.SpringApplication - Application run failedjava.lang.IllegalStateException: Failed to load property source from location 'classpath:/bootstrap.yml' at org.springframework.boot.context.config.Conf原创 2021-12-02 17:31:51 · 8411 阅读 · 3 评论 -
SpringBoot开启数据Gzip压缩
1、优化场景在优化接口时间的过程中,发现很多接口的Content Download时间较长,除了网络问题,就是接口请求的数据太大了,有的达到了几百 kb。控制返回参数收效甚微,这时开启 gzip 就非常有用了,可以压缩接口请求的数据,一般的json文本压缩比率很大,开启之后接口时间大幅下降!Spring boot 版本:2.1.6.RELEASE2、启用步骤Spring Boot 项目配置比较简单:server.compression.enabled=true默认只压缩超过 20原创 2021-11-30 16:47:00 · 13002 阅读 · 1 评论 -
SpringBoot使用Maven打包 -- 引用外部lib目录依赖jar包
有时由于项目需要,在需要打包的时候,由于引入外部lib目录依赖jar包在本地是可以使用的,但是当打包后启动时报错,找不到对应的类。1、引入外部jar包项目中resouces/lib目录放进外部依赖包:在pom.xml中引入外包依赖: <dependency> <groupId>com.xx.xxx</groupId> //组织,随便命名 <artifactId>***</artifactId> //.原创 2021-11-11 17:42:47 · 3902 阅读 · 1 评论 -
SpringBoot整合Flyway实现数据库版本控制并自动升级 SQL 脚本
1、为什么要用Flyway在日常开发中,经常会遇到下面的问题:自己写的SQL忘了在所有环境执行; 别人写的SQL不能确定是否都在所有环境执行过了; 有人修改了已经执行过的SQL,期望再次执行; 需要新增环境做数据迁移; 每次发版需要手动控制先发DB版本,再发布应用版本; 其它场景...由于项目需求的变化,或者前期设计缺陷,导致在后期需要修改数据库,这应该是一个比较常见的事情,如果项目还没上线,可能把表删除了重新创建,但是如果项目已经上线了,就不能这样简单粗暴了,每次运维部署项目,还得手动原创 2021-07-28 16:56:42 · 4817 阅读 · 1 评论 -
SpringBoot参数校验(3)实践及其实现原理
一、简单使用Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Spring Validation是对hibernate validation的二次封装,用于支持SpringMVC参数自动校验。接下来,以SpringBoot项目为例,介绍Spring Validation的使用。1、引入依赖如果SpringBoot版本小于2.3.x,原创 2021-07-28 16:18:07 · 1536 阅读 · 0 评论 -
SpringBoot参数校验(2)开发应用
一、SpringBoot之参数校验1、SpringBoot提供的参数校验注解除了@NotEmpty和@NotBlank将 null 值认为是非法的之外,其它注解如@Size,@Max,@Min等都将 null 认为是有效的,如果不允许 null 值,则需要额外添加@NotNull注解。 注解 说明 @NotEmpty 字符串、集合、Map、数组等不能为 null 或空 @NotBlank ..原创 2021-07-28 15:57:49 · 402 阅读 · 0 评论 -
SpringBoot参数校验(1)@Validated 和 @Valid 的区别
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303 规范,是标准 JSR-303 的一个变种),javax提供了@Valid(标准JSR-303规范),配合 BindingResult 可以直接提供参数验证结果。在检验 Controller 的入参是否符合规范时,使用 @Validated 或者 @Valid 在基本验证功能上没有太多区别。但是在分组、注解地方、嵌套验证等功能上两个有所不同:1. 分组@Validated:提供了原创 2021-07-28 15:50:43 · 426 阅读 · 0 评论 -
SpringBoot如何实现自动装配
目录1、什么是自动配置1.1、引入redisTemplate1.2、引入transactionTemplate1.3、使用@ConfigurationProperties2、工作原理2.1、bean的自动配置2.2、属性的自动配置3、自动配置的生效条件1、什么是自动配置1.1、引入redisTemplate只要在pom.xml文件中引入 spring-boot-starter-data-redis-xxx.jar 包,然后只要在配置文件中配置redis连接,如:原创 2021-07-28 15:38:05 · 10487 阅读 · 4 评论 -
SpringBoot自动扩展点总结
1、背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。我非常喜欢这种自动装配的机制,所以在自己开发中间件和公共依赖工具的时候也会用到这个特性。让使用者以最小的代价接入。想要把自动装配玩的转,就必须要了解spring对于bean的构造生命周期以及各个扩展接口。当然了解了bean的各个生转载 2021-07-28 15:12:42 · 503 阅读 · 0 评论 -
SpringBoot加载配置文件方式
1、SpringBoot加载配置文件的值1.1、application.ymltest: check: code: 1234561.2、取配置文件值的类1)在类上添加@Component组件注解2)在属性上添加@Value注解用于读取配置文件的值并赋值给对应的属性package com.example.mp.config;import lombok.Data;import org.springframework.beans.factory.annotation.原创 2021-07-28 15:06:26 · 4152 阅读 · 0 评论 -
SpringBoot整合Devtools 热部署
1、添加devtools 依赖和pom插件<!-- devtools 依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true&l原创 2021-07-27 14:11:34 · 158 阅读 · 0 评论 -
SpringBoot整合MybatisPlus框架
MybatisPlus框架并不是取代原本的mybatis,而是对Mybatis做了一层封装提供了更简洁的数据层访问方式,但是MybatisPlus并没有对原本mybatis的使用方式造成影响。MP主要优势有两点:提供了默认的API进行数据层的访问,在我们不去写任何sql的情况下就可以对数据库进行基本的CRUD。提供了内置的代码生成器可以快捷生成实体类、数据层接口、映射xml。1、引入依赖mp的依赖中已经默认引入了mybatis的依赖,就不需要再额外导入mybatis的依赖。<!--myb原创 2021-07-27 09:38:11 · 696 阅读 · 0 评论 -
SpringBoot 2.x整合Redis
整合步骤:1.JedisPoolConfig(这个是配置连接池)2.RedisConnectionFactory(这个是配置连接信息,这里的RedisConnectionFactory是一个接口,我们需要使用它的实现类,在SpringD Data Redis方案中提供了一下四种工厂模型)JredisConnectionFactory JedisConnectionFactoryLettuceConnectionFactory SrpConnectionFactory3.RedisTe原创 2021-07-26 16:22:01 · 500 阅读 · 0 评论 -
SpringBoot&screw快速生成数据库文档
推荐一个好用的数据库文档生成插件。数据库表结构文档生成工具screw:https://github.com/pingfangushi/screw一、特点简洁、轻量、设计良好 多数据库支持 多种格式文档 灵活扩展 支持自定义模板二、配置1、pom依赖创建springboot项目添加依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0原创 2021-07-06 16:01:50 · 403 阅读 · 1 评论 -
定时任务的 5 种创建方式&xxl-job定时任务调度平台
Quartz表达式生成地址: http://cron.qqe2.com/----支持生成定时任务表达式和反解析,使用Quartz表达式的定时任务如下1、xxl-job2、springboot 的 @Scheduled3、Quartz 框架一、job 定时任务的五种创建方式1、使用线程创建 job 定时任务/** * TODO 使用线程创建 job 定时任务 * @author 王松 * @date 2019/9/14 0014 22:12 */public class ...转载 2021-06-15 14:59:22 · 1831 阅读 · 0 评论 -
SpringBoot的jar可以直接运行原理
打包插件spring-boot-maven-pluginSpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifa...原创 2021-02-25 22:05:11 · 198 阅读 · 0 评论 -
SpringBoot解决跨域问题三种方式
前后端分离大势所趋,跨域问题更是老生常谈,随便用标题去google或百度一下,能搜出一大片解决方案,那么为啥又要写一遍呢,不急往下看。问题背景:Same Origin Policy,译为“同源策略”。它是对于客户端脚本(尤其是JavaScript)的重要安全度量标准,其目的在于防止某个文档或者脚本从多个不同“origin”(源)装载。它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。原创 2021-01-17 23:27:21 · 238 阅读 · 0 评论 -
Logback配置文件详解
一、序言通过阅读本篇文章将了解到:1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2.通过异步输出日志减少磁盘IO提高性能 3.异步输出日志的原理二、配置文件logback-spring.xmlSpringBoot工程自带logback和slf4j的依赖,所以重点放在编写配置文件上,需要引入什么依赖,日志依赖冲突统统都不需要我们管了。logback框架会默认加载classpath下命名为logback-spring或logback的配置文件。将所有日志都存储在一个文件中文件原创 2021-01-15 01:18:59 · 1669 阅读 · 0 评论 -
SpringBoot @Value注解使用总结
目录1、前言2、数组怎么样3、替代方法3.1、解析 List3.2、解析 Set3.3、解析Map4、后续1、前言在日常开发中,经常会遇到需要在配置文件中,存储List或是Map这种类型的数据。Spring 原生是支持这种数据类型的,以配置List类型为例,对于.yml文件配置如下:test:list:-aaa-bbb-ccc对于.properties文件配置如下所示:test.list...原创 2021-01-11 23:21:21 · 330 阅读 · 0 评论 -
SpringBoot项目瘦身不包含依赖包
1、问题说明SpringBoot 部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud 等),那就更大了。这个时候如果想要对线上运行工程有一些微调,则非常麻烦。2、瘦身前的 Jar 包Tomcat 在部署 Web 工程的时候,可以进行增量更新,SpringBoot 也是可以的~SpringBoot 编译出来的 Jar 包中,磁盘占用大的,是一些外部依赖库原创 2020-11-30 17:21:48 · 393 阅读 · 0 评论 -
HTTP状态码详解和常用对照表
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。我们经常使用浏览器发出http请求,那么对于请求返回的状态,对于开发人员来讲,我们必须要明白其所代表的含义。一、HTTP状态码详解1、消息(1xx)这一类型的状态码,代表请求已被接受,需要继续处理。...原创 2020-06-26 01:31:26 · 575 阅读 · 0 评论 -
SpringBoot(一)HelloWorld篇
目录:1、什么是spring boot2、使用spring boot有什么好处2.1、如何使用Spring开发一个"HelloWorld"的web应用2.2、Spring Boot特点2.3、核心注解类说明3、构建SpringBoot项目及启动器讲解3.1、使用Maven构建SpringBoot项目3.2、pom.xml3.3、SpringBoot启动器4...原创 2018-11-05 19:02:52 · 267 阅读 · 0 评论 -
SpringBoot(二)整合Web开发篇(Servlet、Filter、Listener、访问静态资源、文件上传等)
目录一、整合Servlet1、通过注解扫描完成Servlet组件的注册1.1、pom.xml1.2、编写servlet1.3、编写启动类2、通过方法完成Servlet组件的注册2.1、编写servlet1.2、编写启动类二、整合Filter1、通过注解扫描完成Filter组件的注册1.1、pom.xml1.2、编写Filter1.3、编写启动类...原创 2018-11-06 00:13:07 · 457 阅读 · 0 评论 -
SpringBoot(三)视图层技术——《1》整合jsp技术
目录:一、SpringBoot整合jsp技术1、创建项目2、pom.xml2、创建springBoot的全局配置文件,application.properties3、创建Controller4、创建jsp5、创建启动类6、测试一、SpringBoot整合jsp技术1、创建项目2、pom.xml<project xmlns="http://...原创 2018-11-06 09:45:10 · 361 阅读 · 2 评论 -
SpringBoot(三)视图层技术——《2》整合Freemarker技术
目录:二、SpringBoot整合Freemarker1、创建项目2、pom.xml3、编写视图4、创建Controller5、创建启动器6、测试二、SpringBoot整合Freemarker1、创建项目2、pom.xml添加freemarker启动器的坐标<project xmlns="http://maven.apache.org/...原创 2018-11-06 10:31:27 · 368 阅读 · 0 评论 -
SpringBoot(三)视图层技术——《3》整合Thymeleaf技术
三、SpringBoot整合Thymeleaf (重点)目录1、创建Thymeleaf的入门项目1.1、创建项目1.2、pom.xml1.3、创建存放视图的目录2、Thymeleaf的基本使用2.1、Thymeleaf特点2.2、编写Controller2.3、创建视图 index.html2.4、编写启动类2.5、测试3、Thymeleaf语法详解...原创 2018-11-06 13:53:08 · 401 阅读 · 0 评论 -
SpringBoot(四)整合Mybatis——《1》创建项目,添加用户
目录:一、创建项目1、修改pom文件2、添加application.properties全局配置文件3、数据库表设计二、添加用户1、创建实体类2、创建mapper接口以及映射配置文件3、创建业务层4、创建Controller5、编写页面6、启动类7、测试需求分析:通过使用SpringBoot+SpringMVC+MyBatis整合实现一个对数据库...原创 2018-11-06 17:35:49 · 454 阅读 · 0 评论 -
SpringBoot(四)整合Mybatis——《2》用户查询、用户修改-数据回显、用户修改-更新用户、删除用户
目录三、查询用户1、在mapper接口中以及映射配置文件中添加相关代码2、在业务层中添加查询方法3、在Controller中添加方法4、添加页面四、用户更新1、更新用户之前的查询,并将数据在页面中回显1.1、修改mapper接口以及映射配置文件1.2、修改业务层代码1.3、修改Controller1.4、添加页面updateUsers.html1.5...原创 2018-11-06 18:37:11 · 3680 阅读 · 0 评论 -
SpringBoot(四)整合Mybatis——《3》CRUD
1、项目结构2、pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apa...原创 2018-11-07 10:44:47 · 259 阅读 · 0 评论 -
SpringBoot(五)服务端表单数据校验
目录:一、实现添加用户功能1、创建项目2、修改pom文件3、编写添加用户功能3.1、创建实体类3.2、编写Controller3.3、编写页面add.html,ok.html二、SpringBoot对表单做数据校验1、SpringBoot对表单数据校验的技术特点1.1、SpringBoot中使用了Hibernate-validate校验框架2、Sprin...原创 2018-11-07 14:18:48 · 581 阅读 · 1 评论 -
SpringBoot(六)异常处理与单元测试
目录:一、SpringBoot中异常处理方式1、自定义错误页面2、@ExceptionHandle注解处理异常3、@ControllerAdvice+@ExceptionHandler注解处理异常4、配置SimpleMappingExceptionResolver处理异常5、自定义HandlerExceptionResolver类处理异常二、Spring Boot整合J...原创 2018-11-07 23:23:17 · 377 阅读 · 0 评论 -
Spring Boot Starter依赖包及作用
Spring Boot 之Spring Boot Starter依赖包及作用 1、spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。 2、spring-boot-starter-amqp 通过spring-rabbit来支持AMQP协议(Advanced Message Queuing Protoc...原创 2018-11-23 20:14:16 · 535 阅读 · 0 评论 -
SpringBoot常用注解
目录1、Spring Web MVC 与Spring Bean 注解1.1、Spring Web MVC 注解1.1.1、@RequestMapping1.1.2、@RequestBody1.1.3、@GetMapping1.1.4、@PostMapping1.1.5、@PutMapping1.1.6、@DeleteMapping1.1.7、@PatchMapp...原创 2019-08-26 00:07:12 · 349 阅读 · 0 评论 -
如何提升SpringBoot服务吞吐量?
### 背景 ###生产环境偶尔会有一些慢请求导致系统性能下降,吞吐量下降,下面介绍几种优化建议。### 方案 ###1、undertow替换tomcat电子商务类型网站大多都是短请求,一般响应时间都在100ms,这时可以将web容器从tomcat替换为undertow,下面介绍下步骤:1.1、增加pom配置<dependency> <group...转载 2020-03-22 13:52:59 · 740 阅读 · 0 评论 -
SpringBoot启动原理解析
我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}}从上面代...转载 2020-03-22 14:23:00 · 602 阅读 · 2 评论 -
解决SpringBoot打包没有将pom依赖包打进去
原因一:由于继承的值自定义的parent pom,需要添加repackage配置。一般未一起打包是因为pom不是继承自spring-boot-starter-parent导致的需要在pom.xml文件写入以下配置<plugins> <plugin> <groupId>org.springframework.boot</groupId>...原创 2020-04-23 19:57:34 · 6771 阅读 · 2 评论 -
SpringBoot更新数据到MySQL乱码问题
所谓的乱码是编码不统一,改下字符编码就可以了。要保证以下几个地方统一:1、建数据库时的字符编码2、建表时的字符编码3、连接数据库的URL字符编码4、程序的字符编码.如果现在数据库的编码是UTF-8的话,那么在MySQL的连接字符串中加入下面的内容.jdbc:mysql://127.0.0.1:3306/databasename?useUnicode=true&char...原创 2018-11-06 18:17:39 · 311 阅读 · 0 评论 -
ls was unable to load class org.springframework.tooling.ls.eclipse.commons.YamlGenericEditor.
启动eclipse打开application.properties报:eclipse中无法编辑yml文件Plug-in org.springframework.tooling.boot.ls was unable to load class org.springframework.tooling.ls.eclipse.commons.YamlGenericEditor.org.eclip...原创 2018-12-03 10:22:35 · 4655 阅读 · 1 评论 -
redis反序列化异常:org.springframework.data.redis.serializer.SerializationException
1、日志如下org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to d...原创 2018-12-19 16:19:30 · 17006 阅读 · 0 评论