
Spring Boot
文章平均质量分 64
闻道☞
学习是最好的修行
展开
-
Transaction rolled back because it has been marked as rollback-only
那么现在有A和B两个方法,这两个方法都开启了事务,A方法中调用B方法(因为都使用事务,默认的事务传播级别是PROPAGATION_REQUIRED,所以这过程中会使用同一个事务);当执行B方法的时候,B方法抛出异常,这个时候事务就会被标记为仅回滚(因为在B方法中抛出异常,B方法这事务本该是要回滚,所以会将B方法的事务标记为rollback-only);字面上的意思就是:事务已回滚,因为它已被标记为仅回滚,那为什么会标记为仅回滚呢?转载 2023-10-25 13:40:16 · 13522 阅读 · 0 评论 -
解决Springboot集成RabbitMQ不自动生成队列的问题
另外一种方式(若Mq中无相应名称的队列,会自动创建Queue),改为如下。RabbitMQ懒加载模式, 需要配置消费者监听才会创建。使用rabbitAdmin.declareQueue方法。原创 2023-10-11 14:01:18 · 3609 阅读 · 1 评论 -
hibernate Validation 自定义枚举校验 和 固定值校验证
hibernate Validation 自定义枚举校验 和 固定值校验证转载 2023-09-19 13:29:39 · 187 阅读 · 0 评论 -
SpringBoot项目部署到docker环境中
idea手动部署1. 创建springboot项目1.1 POM.xml<?xml version="1.0" encoding="UTF-8"?><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 h转载 2021-11-05 15:54:38 · 675 阅读 · 0 评论 -
Springboot2.0解决跨域问题
前后端分离大势所趋,跨域问题更是老生常谈,随便用标题去google或百度一下,能搜出一大片解决方案,那么为啥又要写一遍呢,不急往下看。问题背景:Same Origin Policy,译为“同源策略”。它是对于客户端脚本(尤其是JavaScript)的重要安全度量标准,其目的在于防止某个文档或者脚本从多个不同“origin”(源)装载。它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资原创 2021-08-04 09:52:19 · 289 阅读 · 0 评论 -
SpringBoot之日志(十三)
日志介绍1、具体日志功能的实现有以下几种JULLog4jLogbackLog4j2Logback的实现类Logger,实现了slf4j的Logger接口2、日志门面框架:日志实现的抽象层,定义log的Info,debug这些方法。JCLSLF4J如下图,SLF4J定义了一些trace,debug等方法3、日志的发展历史1) JDK1.3及以前,通过System.(out|err).pringln 打印,存在巨大缺...转载 2020-07-19 11:34:06 · 779 阅读 · 0 评论 -
SpringBoot——webflux解析(十三)
webflux介绍Spring Boot 2.0spring.io 官网有句醒目的话是:BUILD ANYTHING WITH SPRING BOOTSpring Boot (Boot 顾名思义,是引导的意思)框架是用于简化 Spring 应用从搭建到开发的过程。应用开箱即用,只要通过一个指令,包括命令行 java -jar 、SpringApplication 应用启动类 、 Spring Boot Maven 插件等,就可以启动应用了。另外,Spring Boot 强调只需要很少的配置文件,转载 2020-07-18 15:58:25 · 3003 阅读 · 0 评论 -
SpringBoot Starter原理(依赖引入,自动配置)(十二)
创建SpringBoot应用,我们在使用Web开发时,选择的是spring-boot-starter-web。starter是一种服务,使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动通过classpath路径下的类发现并加载需要的Bean。原理利用starter实现自动化配置只需要两个条件——maven依赖、配置文件。引入maven实质上就是导入jar包,spring-boot启动的时候会找到starter jar包中的resources/ME转载 2020-07-17 16:46:48 · 4079 阅读 · 0 评论 -
Spring Boot starter介绍以及自定义starter(十一)
1、starter介绍简介: 可插拔插件与jar包区别: starter能实现自动配置作用: 大幅提高开发效率2、常用的starter名称 描述 spring-boot-starter-thymeleaf 使MVC Web applications 支持Thymeleaf spring-boot-starter-mail 使用Java Mail、Spring email发送支持 spirng-boot-starter-data-redis 通过S.原创 2020-07-17 13:51:07 · 817 阅读 · 0 评论 -
Spring Boot Web容器启动(十)
一、启动前的准备:1、SpringApplication构造方法,赋值webApplicationTypeDebug启动项目后,进入SpringApplication构造函数,里面有个webApplicationType2、根据classpath下是否存在特定类来决定哪种类型,分别为SERVLET, REACTIVE, NONEdeduceFromClasspath方法返回webApplicationType为Servlet3、然后进入run方法,进入创建应用程序上下文方法cr.转载 2020-07-16 13:41:27 · 464 阅读 · 0 评论 -
SpringBoot异常报告器(九)
1、接口规范@FunctionalInterfacepublic interface SpringBootExceptionReporter { /** * Report a startup failure to the user. * @param failure the source failure * @return {@code true} if the failure was reported or {@code false} if def转载 2020-07-16 11:33:27 · 1113 阅读 · 0 评论 -
Spring Boot 之属性配置 Aware,Environment,Profile源码(八)
Spring Boot 属性配置的方式有以下几种,优先级分别从高到底排列1、Devtool全局配置2、测试环境@TestPropertySouce注解3、测试环境properties属性4、命令行参数5、SPRING_APPLICATION_JSON属性6、ServletConfig初始化参数7、ServletContext初始化参数8、JNDI属性9、JAVA系统属性10、操作系统环境变量11、RandomValuePropertySource随机值属性12转载 2020-07-15 20:51:55 · 674 阅读 · 0 评论 -
Sping Boot之计时器(六)
用来统计任务的耗时1、进入run方法,其中StopWatch就是计时器2、计时器的使用public class TestStopWatch { public static void main(String[] args) { StopWatch stopWatch =new StopWatch("task"); stopWatch.start("task1"); stopWatch.stop(); sto..原创 2020-07-14 17:34:34 · 2389 阅读 · 0 评论 -
SpringBoot之Banner解析(五)
banner输出的方式1、默认banner输出就是spring boot2、文字banner。修改banner图在resources下创建banner.txt 。内容为/* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O _.原创 2020-07-14 16:43:16 · 504 阅读 · 0 评论 -
SpringBoot之bean解析(四)
IOC思想解析IOC(控制反转):全称为:Inverse of Control。从字面上理解就是控制反转了,将对在自身对象中的一个内置对象的控制反转,反转后不再由自己本身的对象进行控制这个内置对象的创建,而是由第三方系统去控制这个内置对象的创建。DI(依赖注入):全称为Dependency Injection,意思自身对象中的内置对象是通过注入的方式进行创建。那么IOC和DI这两者又是什么关系呢?IOC就是一种软件设计思想,DI是这种软件设计思想的一个实现。把本来在类内部控制的对象,反转到类转载 2020-07-14 16:23:10 · 714 阅读 · 0 评论 -
SpringBoot之监听器(三)
一.监听器设计模式1、事件①声明一个股票事件的抽象类public abstract class StockEvent { public abstract String doWith();}②定义两个具体股票事件public class DownEvent extends StockEvent { @Override public String doWith() { return "下跌"; }}public class..原创 2020-07-12 17:18:47 · 494 阅读 · 0 评论 -
SpringBoot之ApplicationContextInitializer(系统初始化器)的理解和使用(二)
一、ApplicationContextInitializer介绍ApplicationContextInitializer用于在spring容器刷新之前初始化Spring ConfigurableApplicationContext的回调接口。(剪短说就是在容器刷新之前调用该类的initialize方法。并将ConfigurableApplicationContext类的实例传递给该方法)通常用于需要对应用程序上下文进行编程初始化的web应用程序中。例如,根据上下文环境注册属性源或激活...原创 2020-07-09 17:12:05 · 1972 阅读 · 0 评论 -
SpringBoot源码学习(一)启动
SpringBoot启动流程框架的初始化框架的启动自动化装配入口SpringApplication.run(CoreFacadeApplication.class, args);然后调用public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return new SpringApplication(primarySources原创 2020-07-30 15:19:38 · 330 阅读 · 0 评论 -
spring boot应用另一个jar包中的mybatis的mapper文件遇到的坑
被引用的包,因为的mapper.xml不在resources下面,需要把它打进jar包在pom.xml中加如下代码(https://blog.youkuaiyun.com/u011781521/article/details/79052725)<build> <plugins> <plugin> <groupId...转载 2020-05-03 17:09:20 · 5152 阅读 · 1 评论 -
Elastic-job与SpringBoot集成demo
1.引入jar<dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-core</artifactId></dependency><dependency> <groupId&a原创 2018-01-04 16:58:07 · 11615 阅读 · 1 评论 -
SpringBoot(2.1.1)之hello world(一)
一、 Spring介绍1.1、SpringBoot简介SpringBoot是一套快速开发框架,能快速整合第三方框架,完全采用注解化,简化xml配置,让我们的Spring应用变的更轻量化。SpringBoot的主要优点:1.为所有Spring开发者更快的入门2.开箱即用,提供各种默认配置来简化项目配置3.内嵌式容器简化Web项目4.没有冗余代码生成和XML配置的要求...原创 2017-11-25 13:01:45 · 251 阅读 · 0 评论 -
SpringBoot(2.1.1)监控管理及性能调优(十七)
1.Actuator监控应用Actuator是spring boot的一个附加功能,可帮助你在应用程序生产环境时监视和管理应用程序。可以使用HTTP的各种请求来监管,审计,收集应用的运行情况.特别对于微服务管理十分有意义.缺点:没有可视化界面。 1.1 引入maven依赖 <!--Actuator监控--> <dependency&...原创 2018-12-04 11:20:59 · 7749 阅读 · 0 评论 -
SpringBoot(2.1.1)整合多数据源(四)
1.配置文件中新增两个数据源spring.datasource.test1.driverClassName = com.mysql.jdbc.Driverspring.datasource.test1.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8spring.data...原创 2017-11-26 16:37:10 · 2168 阅读 · 0 评论 -
SpringBoot(2.1.1)整合hessian(十二)
1.首先添加hessian依赖 <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.38</versio...原创 2017-12-05 11:48:15 · 3135 阅读 · 0 评论 -
Spring Boot如何使用Spring Security进行安全控制(十一)
我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样,可以通过Aop、拦截器实现,也可以通过框架实现(如:Apache Shiro、Spring Security)。本文将具体介绍在Spring Boot中如何使用Spring Security进行安全控制。准备工作首先,构建一个简单的Web工程转载 2017-12-01 16:19:39 · 315 阅读 · 0 评论 -
SpringBoot(2.1.1)使用devtools实现热部署(十)
1.devtools模块devtools模块,是为开发者服务的一个模块。主要的功能就是代码修改后一般在5秒之内就会自动重新加载至服务器,相当于restart成功。2.原理分析简单原理在发现代码有更改之后,自动重新启动应用,但是其速度比手动停止后再启动还要快些,更快这里指的不是节省出来的手工操作的时间。底层原理:双类加载器机制一个Base ClassLoader加载器,用于加...原创 2017-11-27 11:24:51 · 539 阅读 · 0 评论 -
Spring @Configuration用annotation装配spring
1. @Configuration示例Spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置。一、首先,需要xml中进行少量的配置来启动Java配置:[java] view plain copy <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp...原创 2017-11-24 16:49:30 · 286 阅读 · 0 评论 -
SpringBoot(2.1.1)之使用JdbcTemplate数据访问及mybatis整合(三)
数据访问1、SpringBoot整合使用JdbcTemplate1.1 pom文件引入 <!-- 整合JdbcTemplate--> <dependency> <groupId>org.springframework.boot</groupId> <ar...原创 2017-11-25 13:48:44 · 533 阅读 · 0 评论 -
springboot中使用定时任务,异步调用,自定义配置参数(八)
1.定时任务 1.1定时任务的几种实现方式; Timer:Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。Quartz:使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍...原创 2017-11-26 18:57:31 · 15610 阅读 · 0 评论 -
SpringBoot(2.1.1)之web开发(二)
1、静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。默认配置SpringBoot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置放置名...原创 2017-11-25 13:08:12 · 439 阅读 · 0 评论 -
SpringBoot(2.1.1)本地事物管理和分布式事物管理(五)
1.SpringBoot整合事物管理 springboot默认集成事物,只主要在方法上加上@Transactional即可启动类上的@EnableTransactionManagement注解可加可不加@Transactional(value = "test1TransactionManager")并指定其value值即可。同样的,value值与相应的事务管理方法名相匹配即可。v...原创 2017-11-26 16:46:53 · 897 阅读 · 0 评论 -
SpringBoot(2.1.1)日志打印及全局日志处理(六)
1.概述默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。从上图可以看到,日志输出内容元素具体如下:时间日期:精确到毫秒 日志级别:ERROR, WARN, INFO, DEBUG or TRACE 进程ID 分隔符:— 标识实际日志的开始 线程名:方括号括起来(可能会截断控制台输出) Logger名:通常使用源代码的类名 日...原创 2017-11-26 17:36:58 · 22121 阅读 · 0 评论 -
SpringBoot (2.1.1)统一异常处理(十六)
每个异常都自己去处理很麻烦,所以我们创建一个全局异常处理类来统一处理异常一,首先创建全局异常处理类:通过使用@ControllerAdvice定义统一的异常处理类,而不是在每个Controller中逐个定义。@ExceptionHandler用来定义函数针对的异常类型,@RestControllerAdvice统一回复ExceptionResponse对象,并转为为json格式通用异常返回...原创 2018-08-09 18:45:14 · 2630 阅读 · 0 评论 -
SpringBoot(2.1.1)集成Ehcache(七)
1.注解配置与EhCache使用1.1 pom文件引入<!--EhCache使用--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId>&...原创 2017-11-26 18:44:17 · 517 阅读 · 0 评论 -
SpringBoot集成MongoDB(十二)
步骤1.pom.xml引包2.在配置application.properties中设置spring.data.mongodb.uri属性3.建测试实体类类4.编写数据操作接口5.测试1.pom.xml引包<!--集成mongoDB--><dependency> <groupId>org.springframework.boo...原创 2017-12-22 16:08:59 · 410 阅读 · 0 评论 -
SpringBoot(2.1.1)集成redis及缓存操作失败的异常处理
1.添加spring-boot-starter-data-redis依赖 <!-- Spring Boot Redis依赖 --> <!-- 注意:1.5版本的依赖和2.0的依赖不一样,注意看哦 1.5我记得名字里面应该没有“data”, 2.0必须是“spring-boot-starter-data-redis” 这个才行...原创 2018-01-10 16:18:53 · 7838 阅读 · 0 评论 -
SpringBoot之过滤器配置(十五)
有两种方式:代码注册或者注解注册1.代码注册方式通过代码方式注入过滤器 @Bean public FilterRegistrationBean someFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); regist...原创 2017-12-25 18:02:50 · 5030 阅读 · 0 评论 -
SpringBoot(2.1.1)发布打包和多环境配置(九)
1.多环境配置#激活哪一个环境的配置文件spring.profiles.active=devapplication-dev.properties:开发环境application-test.properties:测试环境application-prod.properties:生产环境 2. 发布打包2.1 使用Spring Boot Maven插件打包成可运行的jarS...原创 2017-11-27 10:35:22 · 726 阅读 · 0 评论 -
SpringBoot(2.1.1)配置拦截器(十四)
SpringBoot使用拦截器SpringBoot的拦截器只能拦截流经DispatcherServlet的请求,对于自定义的Servlet无法进行拦截。SpringMVC中的拦截器有两种:HandlerInterceptor和WebMvcInterceptor。这两个接口都定义了请求之前、请求之中、请求之后三个函数,以HandlerInterceptor为例进行说明:public ...原创 2017-12-12 20:15:15 · 420 阅读 · 0 评论 -
Spring Boot完美使用FastJson解析JSON数据(十三)
个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析呢? 引入fastjson依赖库: 这里要说下很重要的话,官方文档说的1.2.10以后,会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageC...转载 2017-12-08 18:17:07 · 1186 阅读 · 0 评论