随笔分类 - spring & springboot / cloud
摘要:背景: 使用 springboot,要从spring容器里面取到一个bean,那是很容易的。 但从静态方法里面取出一个bean,有什么方法呢? 比如: 场景1:要写一个工具类,可以提供静态方法去获取一个bean。 场景2:要写一个工具类,可以提供静态方法去获取一个bean,并且这个工具类不能给spr
阅读全文
摘要:使用注解 @Authentication(anonymous = true) 在入口处统一拦截。不用判断请求头。
阅读全文
摘要:现象 在一个类内,写了两个定时任务,发现它们竟然是串行执行的。 于是想到, @Scheduled 该不会是单线程执行折吧? 于是找了一下,发现还真的是。。。 可参考: https://blog.csdn.net/Mr_EvanChen/article/details/103408290 解决方案 1
阅读全文
摘要:参考于: https://blog.csdn.net/weixin_40783112/article/details/80396830 背景 springcloud 服务注册到 eureka, 但部署的节点存在多网卡,导致服务注册到eureka的服务信息,被另外的服务无法调用到。 解决方案: 通过启
阅读全文
摘要:@ConditionalOnExpression 注解 如果有一个基类,它下面有子类实现比如 v1, v2, v3 三个子类,但使用的时候,springboot 服务启动的时候,只想指定用其中的一种,这种情况要怎样做呢? 比如基类: RentPlan 出租计划 它有几个实现类 RentPlanV1,
阅读全文
摘要:背景 在一些业务开发,经常会写一些工具类,但这些工具类时常需要调用到 Spring管理的bean,这些Spring管理的bean 注入, 平常用的都是 @Autowired 注解一个成员变量, 问题就来了: (1)成员变量(即Spring管理的bean)是非静态的,但工具类都是想写静态方法,静态方法
阅读全文
摘要:背景 项目需求,对业务请求要进行拦截,并在请求体添加指定参数以进行请求合法性校验 实现方式和步骤 需求就是这么个需求了,然后就在 zuul 网关引入了一个 Filter, 在filter的 run 方法上,通过 RequestContext context = RequestContext.getC
阅读全文
摘要:背景 在本地启动一个服务,服务内通过 feign 调用服务器A上的一个接口,和调用服务器B上的另外一个接口。 然后嗯,服务器A接口能够成功调用得到, 但是服务器B接口就会报一个 connect time out (非常快速响应失败) 检查了很久,确认写法是没有错误的, 并且通过 postman 去访
阅读全文
摘要:背景 业务开发,经常要处理各种各样的异常,然后一层处理,确实也不太舒服,也不够规整。 只管抛异常,不用每个地方都去判断catch 一下,会舒服得多。 但项目上还没有统一去做这个事情,虽然知道是好事,但没做就是没做, 业务来了 最近添加了一个全局异常处理类,是因为近来有一个业务,大概是根据当前登录人,
阅读全文
摘要:背景: 代码是这样写的: @Service @Transactional public class LoginBizImpl implements LoginBiz { // .... 省略 } 阿里巴巴规范扫描, 它就提示attribute rollbackfor of annotation tr
阅读全文
摘要:背景 本来是一件很简单的事情,就是想在配置中心添加一层认证,但还是搞得很麻烦,麻烦到要专门做一篇小记来记录一下这坎坷的过程。 是这样子的,原来的项目: springboot1.x + zuul-server 本来也没什么问题,但是做个filter 上去,死活就是不行,问题太多,没心情,也就没有记录下
阅读全文
摘要:springboot 日志, 配置文件中, logging: level: org.springframework.web.servlet.DispatcherServlet: INFO com.dy.springboot.server.mapper: INFO com.carrot.logging
阅读全文
摘要:原文参考:https://www.cnblogs.com/kinome/p/12468421.html HttpGetBody import javax.servlet.ServletRequest; import java.io.BufferedReader; import java.io.IOE
阅读全文
摘要:1、指定读取的配置路径 配置在 application.yml 文件里面 server: port: ${SERVER_PORT:10102} spring: application: name: config profiles: active: ${PROFILE:native} manageme
阅读全文
摘要:先来说一个总结: 1、通过构造函数的方式进行的BEAN创建,出现了循环依赖,没有办解决 2、单例BEAN通过SET方法进行属性注入,可以通过提前暴露的方式(即三层缓存)进行解决 3、如果是原型模式的BEAN(作用域是 prototype)无办法解决,因为它不在SPRING容器中进行缓存。无法进行提前
阅读全文
摘要:spring 注入的3种方式 属性注入 就是平时使用最多的 在属性上加一个 @Autowired set 方法 在spring3.x及之前推荐使用,通过提交暴露可以解决循环依赖的问题 构造器(构造方法) 在 spring4.x及之后推荐使用 // 属性注入 @Service public class
阅读全文
摘要:背景 使用Caffeine本地缓存,外加@Cacheable注解,想把这个注解加到mapper上,并且把参数id做key的时候,发现参数拿不到。 这样是拿不到的 @Cacheable(value = "xxCache", key="'#id") UserVO queryUserByLdapId(@P
阅读全文
摘要:背景 Springboot + CaffeineCache + 使用@Cacheable注解 请求查询一个方法,因为数据变化频率低,查询频率高,于是使用缓存,并使用注解。 但发现用了 @Cacheable 这个注解,发现并没有生效。 代码是这样子的 ***ServiceImpl.java publi
阅读全文
摘要:背景 @NonNull: 关于这个注解,lombok 的一个注解,可以加在方法-入参,或构造函数上。 本以为加了这个参数,会自动判断(编译阶段)会判断,但发现并不是这个意思。因为在编译的时候,传个空的参数过来,它是不会有任何的报错提示的。 那这个东西有什么用呢?一度产生了怀疑。 直至,后来才突然醒觉
阅读全文
摘要:背景 业务开发,需要做一个操作日志,操作日志需要记录某一条数据在操作前后的值的变化记录,并写到操作记录表。 这种情况,使用自定义注解,加个切面,再合适不过了。 于是就开干。 代码部分 先写一个切面 @Target({ElementType.METHOD}) @Retention(RetentionP
阅读全文

浙公网安备 33010602011771号