2021
09-29
09-29
Spring Boot FeignClient 如何捕获业务异常信息
SpringBootFeignClient捕获业务异常信息因项目重构采用springcloud,feign不可避免。目前springcloud在国内还不是很成熟,所以踩坑是免不了的。最近处理全局异常的问题,搜了个遍也没找到合适的解决方案1.全局异常处理importcom.bossien.common.comm.entity.ResponseDto;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.web.bind.annotation.ControllerAdvice;importorg.springframewo...
继续阅读 >
一、Bean的实例化概述前一篇分析了BeanDefinition的封装过程,最终将beanName与BeanDefinition以一对一映射关系放到beanDefinitionMap容器中,这一篇重点分析如何利用bean的定义信息BeanDefinition实例化bean。二、流程概览其实bean的实例化过程比较复杂,中间细节很多,为了抓住重点,先将核心流程梳理出来,主要包含以下几个流程:step1:通过反射创建实例;step2:给实例属性赋初始值;step3:如果Bean类实现BeanNa...
一、方法一多环境配置文件我们一般都会有多个应用环境,开发环境、测试环境、生产环境,各个环境的配置会略有不同,我可以根据这个创建多份配置文件,由主配置文件来控制读取那个子配置创建springboot项目后可以同时创建多个.properties文件,只要符合它要求的格式即可格式:application-{profile}.properties;{profile}是变量用于自定义配置文件名称分别创建三个应用环境的配置和一个主配置1、application.properties主配置...
目录一、ApplicationContext事件机制二、ApplicationListener监听器三、ApplicationEvent事件四、自定义事件和监听器五、注解式监听器一、ApplicationContext事件机制ApplicationContext事件机制采用观察者设计模式来实现,通过ApplicationEvent事件类和ApplicationListener监听器接口,可以实现ApplicationContext事件发布与处理。每当ApplicationContext发布ApplicationEvent时,如果Spring容器中有Applicatio...
目录一、前言二、自定义参数校验器三、使用自定义注解一、前言系统执行业务逻辑之前,会对输入数据进行校验,检测数据是否有效合法的。所以我们可能会写大量的ifelse等判断逻辑,特别是在不同方法出现相同的数据时,校验的逻辑代码会反复出现,导致代码冗余,阅读性和可维护性极差。JSR-303是Java为Bean数据合法性校验提供的标准框架,它定义了一整套校验注解,可以标注在成员变量,属性方法等之上。hibernate-validator就提供了...
目录零、学习目标 一、全局配置文件概述二、Application.properties配置文件1、配置tomcat端口号和web虚拟路径2、对象类型的配置与使用3、两种属性注解方式的对比三、Application.yaml配置文件四、两种配置文件的比较五、课后作业零、学习目标1、掌握application.properties配置文件2、掌握application.yaml配置文件3、掌握使用@ConfigurationProperties注入属性4、掌握使用@Value注入属性 一、全局配置文件概述全局配置...
1.Spring配置文件1.1配置数据库连接池<!--读取文件--><util:propertiesid="config"location="classpath:Config/db.properties"/><!--配置数据库连接池--><beanid="source"class="org.apache.commons.dbcp.BasicDataSource"><propertyname="driverClassName"value="#{config.drivername}"/><propertyname="url"value="#{config.url}"/><propertyname="username"value="#{config.name}"/><propert...
发送邮件在web开发中,发送邮件是一个很常用的功能,SpringBoot也集成了发送邮件的功能基本使用使用SpringBoot的发送邮件功能,需要导入邮件的starter依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>配置邮件发送服务器的配置,如果是qq邮箱,password属性为邮箱的授权码spring:mail:host:smtp.qq.comusername:425017255@qq.c...
使用AOP的原因(AOP简介)我们知道,spring两大核心,IOC(控制反转)和AOP(切面),那为什么要使用AOP,AOP是什么呢,严格来说,AOP是一种编程规范,是一种编程思想,并非spring创造,AOP可以帮助我们在一定程度上从冗余的通用的业务逻辑中解脱出来,最明显的,比如每个接口的请求,都要记录日志,那这个操作如果每个地方都写,就会很繁琐,当然,记录日志并不是唯一的用法spring的AOP只能基于IOC来管理,它只能作用于spring容器...
目录1数据库审计2SpringDataJPA审计2.1项目准备2.2创建实体父类2.3如何获取名字2.4测试3总结我最新最全的文章都在南瓜慢说www.pkslow.com,欢迎大家来喝茶!1数据库审计数据库审计是指当数据库有记录变更时,可以记录数据库的变更时间和变更人等,这样以后出问题回溯问责也比较方便。对于审计表记录的变更可以两种方式,一种是建立一张审计表专门用于记录,另一种是在数据库增加字段。本文所讨论的是第二种方案。那如...
此脚本用来管理SpringBoot项目的进程状态。有提示功能。把脚本丢到项目文件夹,添加执行权限即可。如果jenkins使用这个脚本,需要在java-jar命令前添加BUILD_ID=dontKillMe,不然jenkins会杀掉进程。参考:https://stackoverflow.com/questions/39169457/how-to-tell-jenkins-not-to-kill-processes-after-successful-execution-of-job-in-m脚本维护在github,有需求的话可以关注https://github.com/junbaor/shell_scr...
一、背景项目升级改造,老项目使用请求url中特定参数进行服务路由,现使用gateway网关进行路由服务信息二、根据参数信息修改请求路径Path@ComponentpublicclassRequestFilterimplementsGlobalFilter,Ordered{@OverridepublicMono<Void>filter(ServerWebExchangeexchange,GatewayFilterChainchain){ServerHttpRequeststr=exchange.getRequest();if(str.getQueryParams().containsKey("dem...
前言相信小伙伴一定用过@Transaction注解,那@Transaction背后的秘密又知道多少呢?Spring是如何开启事务的?又是如何进行提交事务和关闭事务的呢?画图猜测在开始debug阅读源码之前,小伙伴们应该已经知道MySQL是如何开启事务的。因此可以得出猜测:那下面跟着源码一起读一读,Spring的@Transaction注解是如何执行事务逻辑的?Spring事务执行流程开启事务这里使用的是SpringBoot+MySQL+Druid<dependency>...