![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringBoot
文章平均质量分 64
SpringBoot实战开发经验
Simon西蒙
这个作者很懒,什么都没留下…
展开
-
SpringBoot 自定义logback.xml打印日志
SpringBoot 自定义logback.xml打印日志pringBoot默认的日志组合为slf4j + logback,但是默认配置是日志只输出在控制台,在实际项目中我们需要输出到指定的log文件才便于日后的日志定位。实践在无任何配置的前提下,只要我们引入了SpringBoot的包,就可以直接使用日志的功能。SpringBoot会默认去加载resources下名为logback.xml 或者 logback-spring.xml的配置文件自定义logback.xml文件:原创 2022-03-21 16:57:43 · 2264 阅读 · 0 评论 -
SpringBoot+Mybatis整合多数据源
SpringBoot+Mybatis整合多数据源在实际项目开发中,不免会遇到需要一套程序需要操作多个数据库的场景,这时候多数据源就派上用场了。项目结构引入Maven依赖包<?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" xs原创 2022-03-21 16:09:55 · 1330 阅读 · 0 评论 -
Spring Cache 集成 Caffeine实现项目缓存
一、前言Spring Cache本身是Spring框架中一个缓存体系的抽象实现,本身不具备缓存能力,需要配合具体的缓存实现来完成,如Ehcache、Caffeine、Guava、Redis等。二、缓存注解@EnableCaching:开启缓存功能@Cacheable:定义缓存,用于触发缓存@CachePut:定义更新缓存,触发缓存更新@CacheEvict:定义清楚缓存,触发缓存清除@Caching:组合定义多种缓存功能@CacheConfig:定义公共设置,位于class之上三、实战原创 2020-10-30 10:53:58 · 3485 阅读 · 3 评论 -
SpringBoot整合kafka
前言安装kafka,版本为2.6.0安装zookeeper,版本为3.6.2启动kafka启动zookeeperSpringBoot版本2.3.1.RELEASE核心目录结构KafkaConsumer.java 消费者KafkaProducerController 生产者application.yaml 主配置文件application-kafka.properties kafka配置文件代码pom依赖<dependency> <gr原创 2020-09-19 18:12:40 · 185 阅读 · 0 评论 -
SpringBoot项目实战经验之读取配置文件属性值的四种方式
方式一@Value("${xxx}")此方式一般多用于读取较少数量或没有相同前缀的属性值。实例:// 新建一个配置文件application-test.propertiesage=25address=nanjing // 在application.yml主配置文件中激活test配置文件,否则获取不到spring: profiles: active: test@RestController@RequestMapping("/v1")public class Re原创 2020-08-28 09:35:01 · 1324 阅读 · 0 评论 -
hibernate-validator扩展自定义注解校验请求参数及请求体
SpringBoot项目中一般使用hibernate-validator来对请求参数进行校验,但hibernate-validator提供的注解有限,有时候需要根据具体业务扩展自定义注解对参数进行校验。前言:在实际运用中,hibernate-validator的注解分为校验单个的参数及整个实体类,两个校验的情况在处理上有一些差别,下面分开讲解。校验单个参数自定义注解模拟对Id进行校验@Documented@Constraint(validatedBy = IdCheck.IdValidat.原创 2020-08-21 15:42:08 · 848 阅读 · 0 评论 -
SpringBoot项目实战经验之Filter实现自定义过滤器
Servlet包中提供了Filter接口供我们实现自定义过滤器。自定义拦截器可以参考我之前的文章https://blog.csdn.net/King__Cheung/article/details/107781774。与之不同的是,拦截器是Spring框架提供的功能,而Filter过滤器是Servlet提供的。下面是拦截器与过滤器的一些主要区别:Filter由Servlet包提供,只能用于Web应用,不能使用Spring容器资源;拦截器由Spring提供,既能用于Web应用,也能用于Appli..原创 2020-08-05 11:25:45 · 680 阅读 · 0 评论 -
SpringBoot项目实战经验之ApplicationEvent+@EventListener实现自定义监听器
Spring中提供了ApplicationEvent+@EventListener注解可以实现自定义事件监听,是基于_观察者模式_的。组成要素自定义事件自定义监听器发布事件自定义事件继承ApplicationEvent,自定义Event/** * @Author zhangting * @Desc 自定义事件 * @Date 2020/08/04 **/@Setter@Getterpublic class MyEvent extends ApplicationEven.原创 2020-08-04 16:03:51 · 723 阅读 · 1 评论 -
SpringBoot项目实战经验之HandlerInterceptorAdapter实现自定义拦截器
SpringBoot中提供了HandlerInterceptorAdapter适配器供我们自定义拦截器,可以拦截自定义或所有的请求做相应的处理。HandlerInterceptorAdapter中共有四个方法:preHandle :在Controller方法被调用前执行postHandle :在Controller方法调用后执行afterCompletion :在整个请求处理完成之后执行afterConcurrentHandlingStarted :用来处理异步请求,当Controller中.原创 2020-08-04 10:59:05 · 1561 阅读 · 0 评论 -
SpringBoot项目实战经验之@ControllerAdvice+ResponseBodyAdvice实现响应体全局统一处理
在实际项目开发中,经常需要对向前台返回的响应体进行处理,例如包装为通用返回类型等。Spring中提供了 @ControllerAdvice+ResponseBodyAdvice 的解决方案 对响应体进行全局统一处理,可以避免在controller层对业务代码入侵。代码示例/** * @Author zhangting * @Desc 响应body全局统一处理 * @Date 2020/07/29 **/@Slf4j@ControllerAdvice(basePackages = "com.原创 2020-07-29 15:31:21 · 1194 阅读 · 0 评论 -
SpringBoot项目实战经验之@ControllerAdvice+RequestBodyAdvice实现请求体全局统一处理
在实际项目开发中,经常需要对前台发来的请求body进行处理,例如参数过滤,参数校验,不合法参数拦截,参数解密等等。Spring中提供了 @ControllerAdvice+RequestBodyAdvice 的解决方案 对请求进行全局统一处理,可以避免在controller层对业务代码入侵。注意:该方法只对使用了@RequestBody注解的参数生效,本质上是AOP,获取的是在请求头中的属性,如果通过GET请求方式,例如http://localhost:8080/xx?id=1 此种方法,是无法获得i.原创 2020-07-29 14:41:15 · 3015 阅读 · 5 评论 -
SpringBoot项目实战经验之@ControllerAdvice+@ExceptionHandler实现全局异常统一处理
注解@ControllerAdvice(或@RestControllerAdvice)本质上是Component,会被当做组件扫描。一般配合@InitBinder、@ModelAttribute、@Exception来使用,实现以下三个方面的功能:1、全局数据预处理2、全局数据绑定3、全局异常处理今天我们主要介绍第三种功能,在平时的项目中使用的比较广泛,可以实现在后台业务处理时抛出自定义错误,传回前台,此时前台就可以友好的将错误提示给用户。@ExceptionHandler(“异常类名”)原创 2020-07-24 15:48:12 · 435 阅读 · 0 评论