![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 78
努力的小星星
这个作者很懒,什么都没留下…
展开
-
Reactive思考
web flux、web mvc及spring web关系原创 2023-01-07 14:48:59 · 542 阅读 · 0 评论 -
单元测试:脱离Springboot环境加载属性文件样例转至元数据结尾
背景单测的例子仅涉及属性文件的加载,不涉及数据库等,所以不希望启动整个spring boot环境样例 代码如下: // 脱离springboot启动环境如何加载属性文件 @Import(value = {TestProperties.class}) @EnableConfigurationProperties @ContextConfiguration(initializers = ConfigFileApplicationContextInitia原创 2022-03-10 16:46:37 · 814 阅读 · 0 评论 -
Spring:单测及各种问题集锦
如何脱离Spring boot环境(非@SpringbootTest)加载application.properties/yml import org.junit.Assert;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.springframework.beans.factory.annotation.Autowired;import org.sprin原创 2021-05-10 21:01:57 · 595 阅读 · 0 评论 -
Spring:无法在类内使用this完成@Async、@Transactional、@Cacheable功能问题解决
问题基于spring-aop的proxy实现,无法在类内使用this完成@Async、@Transactional、@Cacheable注解的功能。原因基于proxy的方式是在spring容器初始化过程中,通过继承或实现相应对象的类/接口,形成新的代理对象,并将原始对象进行包装,并在调用前后插入一些point,完成aop的功能,而this方式不会经过proxy,相当于原始对象的直接调用。解决方案解决方式,大致有以下几种:不使用this,从spring容器上下文中获取被代理的对象,替换原创 2021-05-06 20:07:01 · 741 阅读 · 1 评论 -
Spring4.x下无法为Feign对象进行Aop增强问题始末
目录动机问题说明排错过程动机动机很简单,就是想对标注了@FeignClient的feignClient进行一些切入点的配置,实现通用日志控制。问题说明像Controller及其子处理器这类Spring自己定义的Bean没问题,对自己的实现的支持还是很完善的,但是到了feign这块,问题就很大了(另外说明一下,当前使用的Spring版本是4.x,且同样的实现,在Spring5.x中完全没问题),通用的aop切片根本无法对标识了@FeignClient的接口api进行处理!!初步原创 2020-11-26 16:12:37 · 1065 阅读 · 6 评论 -
Spring boot启动过程及扩展点分析
Springboot(以1.5.21版本为例)项目中,项目启动除了jvm的经典过程外,以下是Spring boot项目启动过程:org.springframework.boot.loader.JarLauncher中的main函数即为上一步jvm加载并执行的函数 编写有SpringApplication的应用主函数为其中的启动一个环节接下来跟下Spring boot启动过程【org.springframework.boot.loader.JarLauncher】:registerUrlPr.原创 2020-09-07 10:07:59 · 1016 阅读 · 0 评论 -
Spring boot项目中排除自动配置类失败问题始末
正常情况下,在Spring boot项目中,对于多个自动配置类冲突问题,使用@EnableAutoConfiguration的exclude即可。如下,存在两个配置类构造同一dataSource:1.某包下DruidDataSourceAutoConfigSelf配置类(使用spring.factories进行的自动配置) packagecom.example.framework.autoconfigure.druid; @Configuration @Con..原创 2020-08-03 10:48:01 · 3869 阅读 · 2 评论 -
feign动态切换url方式实现
1、定义调用接口(主要使用@RequestLine) 2、使用(Feignbuilder) 3、调用方式与原feignCLient无异:springcloud中feignClient对原生feign进行了上层封装,得以在Spring环境下对开发人员有较好的细节屏蔽,如果想要跳出该封装,进行灵活的使用,如下场景:需要根据用户的配置,在不重启机器的情况下完成服务的切换 大量的基础参数重复在各个接口间,或其他定制化操作(拦截器等)这种情况下,需要使用原生feign,按以下几步即可:1、定义调用接原创 2020-07-30 17:39:39 · 9169 阅读 · 0 评论 -
记一次feignClient导致的启动失败经历
spring cloud starter feign 1.4.4.RELEASE一、基本排错过程及原因项目启动报错如下:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'xService' defined in class path res...原创 2020-03-09 11:31:29 · 3183 阅读 · 0 评论 -
spring boot 2.x:feign之feign-starter默认依赖变动及影响
旧版本-Springboot:1.5.x,springcloud:Edgware.SR6新版本-Springboot:2.2.x,springcloud:Hoxton.SR2以下以新版、旧版简称1. 依赖变动轨迹旧版feign-starterspring-cloud-starter-openfeignspring-cloud-netflix-coreio.github.ope...原创 2020-02-28 13:50:11 · 789 阅读 · 0 评论 -
eureka安全注册模式
本文中安全模式仅针对eureka-server,而eureka-service和eureka-client并未增加安全认证eureka-server eureka-service eureka-clienteureka-servereureka-server目前在默认配置下,所有接口均公开暴露,所以在实际应用时我们需要增加密码校验,不论是其本身对外ui界面还是其他接口,这就需要s...原创 2020-02-26 13:10:07 · 307 阅读 · 0 评论 -
feign在springCloud场景下进行动态url变更
springcloud中feignClient对原生feign进行了上层封装,得以在Spring环境下对开发人员有较好的细节屏蔽,如果想要跳出该封装,进行灵活的使用,如下场景:需要根据用户的配置,在不重启机器的情况下完成服务的切换 大量的基础参数重复在各个接口间,或其他定制化操作(拦截器等)这种情况下,需要使用原生feign,按以下几步即可:定义调用接口(关键点:RequestLine...原创 2019-12-12 10:58:56 · 3813 阅读 · 0 评论 -
Spring @ControllerAdvice 使用及源码分析
ControllerAdvice作为Spring中默认的注解,提供对所有(你的项目包扫描范围内)Controller的异常捕获功能。使用时,如下:@Order(Integer.MAX_VALUE)@ControllerAdvicepublic class DefaultExceptionHandler { protected Logger log = LoggerFacto...原创 2019-06-11 11:43:00 · 1968 阅读 · 0 评论 -
Spring:validate和messages消息源统一化
统一validator和Spring国际化消息源原创 2019-06-17 17:20:14 · 3319 阅读 · 0 评论 -
redisson缓存序列化几枚“坑”说明
1、返回值为Map<T, K> 的方法增加@Cacheable后,T和K被类型擦出了,为啥?redisson结合Spring使用时,会有RedissonSpringCacheManager,将redissonClient自动注入,另外还有codec的概念,即序列化和反序列化,可以查看实现类,就几种实现,假设我们使用org.redisson.codec.JsonJacksonCode...原创 2019-07-02 18:56:24 · 2244 阅读 · 0 评论 -
spring 项目下mvnw和mvnw.cmd的作用
作用:mvnw是一个maven wrapper script,它可以让你在没有安装maven或者maven版本不兼容的条件下运行maven的命令.注意,需要与mvnw软件区分开,spring项目中的mvnw仅仅是个脚本,并非软件。原理:1. 首先寻找maven在你电脑环境变量path中的路径2. 如果没有找到这个路径它就会自动下载maven到一个默认的路径下,之后你就可以运行m...原创 2019-07-29 11:25:47 · 6346 阅读 · 3 评论 -
spring boot 运行、打包报循环依赖错误异常
最近的springboot项目开发时运行没问题,打包运行时报错:抛出BeanCurrentlyIn CreationException异常:Requested bean is currently in creation: Is there an unresolvable circular reference? 查了下原因是循环依赖问题。什么是循环依赖?当我们有两个(当然也可能是多个)类...转载 2019-07-29 14:21:11 · 1344 阅读 · 0 评论 -
eureka高可用方案及测试
首先,eureka的ha基本解决方案是通过部署多eureka实例,并且使任何一实例均注册到其余所有eureka中,互相注册,达到注册列表多备份。然后,对于client端,启动时,eureka.client.service-url.defaultZone需要将各eureka实例均配置上,通过“,”间隔即可。预备工作:以下是ha测试过程:eureka实例:实例1:所在宿主机:1...原创 2019-07-25 11:08:43 · 606 阅读 · 0 评论 -
Spring:自定义扫描器
spring 下扫描自定义注解并生成bean该如何做?首先,定义扫描类@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public @interface Group { /** group值 */ String value();}然后,编写扫描器class GroupClassPath...原创 2019-07-31 12:47:44 · 302 阅读 · 0 评论 -
spring cloud:feign预配置路径
使用feign的过程中,经常会需要引入别人的feign-client,请求接口,这样不可避免的就需要将需要的feign所在路径在项目中配置齐全,本文解决在源头如何避免使用的人每次都需要增加自己提供的feign所在路径问题。1、首先,了解springboot的一个机制,就是自动配置功能,该功能可在项目的resources/META-INF下增加spring.factories文件,按如下方式将自...原创 2019-07-23 13:54:25 · 612 阅读 · 0 评论 -
eureka服务注册慢、剔除服务慢问题解决
一、服务注册慢、剔除慢,使用减少延时方式(各自进行配置)1、eureka-server# 服务端剔除间隔eureka.server.eviction-interval-timer-in-ms=5002、eureka-service# 实例续期持续多久后失效eureka.instance.lease-expiration-duration-in-seconds=2# 实例续期心跳...原创 2019-08-13 19:39:30 · 3166 阅读 · 1 评论 -
Spring:基于aop和this调用的区别
有这样一种场景,我的某个Service中加了注解,且根据该注解做了切片,增强了方法,如下那么,问题来了,除了service.func()方式外,可能我的注解是加在了私有方法上,即通过类内其他方法this指针调用该方法,通过测试,发现,this方式调用后,该注解原本加强的功能没有了,到底怎么回事呢?接下来我们一起来揭秘,看看Spring的aop到底做了什么。这样,我们先抛出几个问...原创 2019-06-12 15:48:46 · 1097 阅读 · 0 评论