SpringBoot
文章平均质量分 56
weixin_45614626
这个作者很懒,什么都没留下…
展开
-
springBoot配置多个线程池
java配置多个线程池原创 2023-01-16 13:17:20 · 1487 阅读 · 0 评论 -
Druid平行替换为Hikari
hikari替换druid原创 2022-12-29 14:58:11 · 1894 阅读 · 0 评论 -
Druid关闭监控页面关闭不了
druid关闭监控页面关不掉原创 2022-12-29 14:47:05 · 3684 阅读 · 0 评论 -
多线程如何使用MDC传递上下文信息
多线程如何实现上下文信息传递原创 2022-09-01 15:03:07 · 1099 阅读 · 0 评论 -
dubbo filter中有关bean注入和配置文件读取的问题
今天在写dubbo的filter时候,需要注入bean和读取配置文件,然后理所当然的就像springboot其他地方的写法一样,直接用了@Resource和@Value注解。但是本地调试的时候,发现报错,注入的bean和读取的配置变量全部为null,很是不解,于是就上网查了以下资料。首先,dubbo的拦截器这些组件是由dubbo自己管理的,并不是直接由spring管理的,因此spring的那些注入注解在dubbo里统统不能用。如果想用可以采取以下代码: private Environment envi原创 2022-03-10 14:50:07 · 3358 阅读 · 0 评论 -
dubbo消费者利用filter拦截器塞入隐式参数
之前写过一篇博客是在provider方利用拦截器来处理异常或者打印日志,具体见dubbo的filter现在要在上游服务调用下游dubbo服务的同时,也把一部分通用参数传入下游来做请求的链路追踪,这些通用参数放入接口参数不现实,且会影响其他服务调用方,于是就利用RpcContext来做隐式参数传递。当一个上游一个http请求过来时,通过拦截器将通用参数放入MDC中,MDC是和线程相关的,里边的修饰符是ThreadLocal,具体可以见MDC,之后利用拦截器统一将参数塞入。拦截器代码如下:@Activat原创 2022-03-04 15:35:21 · 2530 阅读 · 0 评论 -
记一次feign拦截器报错404NOT FOUND问题排查
因为链路追踪需要将前端请求中的header参数统一转发至下游服务。对下游服务http接口的调用我使用的是feign,因此我采用了统一加拦截器配置的做法,写了一个拦截器。具体见feign拦截器但同时我也需要将请求的参数打印出来,这里牵扯到另一个问题,post的body参数是从流里边取出的,但是这个流只能取一次,所以我又重写了一个方法,来复制流中的数据。这时候出现了诡异的事情,本地运行完全没问题,一上测试就出问题。容器里边的报错信息是404 NOT FOUND,这个第一想法是路径有问题,可是本地调用完全没原创 2022-03-01 14:55:30 · 2724 阅读 · 2 评论 -
Java里操作mongoDB随机取N条数据
接了一个需求,要随机从MongoDB中选取一定数量的数据出来。如果是sql的话,主键是自增的Int,可以先随机生成一个数,然后去找主键等于这个随机数的数据,就能实现随机查询。但是mongo中主键是自动生成的一串字符,没法根据主键查找。同时,把所有数据全部查出来,在list中再随机查找,如果数据量不大还行,数据量大这样太费时间了。后来上网查询发现mongo中有聚合函数可以直接实现,在控制台的命令如下随机查询10条数据db.user.aggregate( [ { $sample: { size: 10原创 2021-08-25 11:43:36 · 1324 阅读 · 0 评论 -
Spring中利用@Value注解读取yml中的map配置
网上查了好多资料,都是.properties文件中读取,而且又是几个人抄来抄去,找了半天功夫不负有心人,终于找到了详尽的用法介绍。下边是我在yml中的map写法test: map: '{"test1":"12345","test2":"54321"}'使用时候注解的写法 @Value("#{${test.map}}") private Map<String,String> mapKey;如果是.properties文件写法很不一样。还有一种使用方法时创建一个类,原创 2021-05-10 15:01:41 · 6965 阅读 · 5 评论 -
利用java代码给mongo数据库加索引、删除索引等操作
晚上搜了一下相关代码,不是互相抄瞎写就是答非所问,只好自己摸索着写一下,修改之后那这篇文章记录一下,免得以后遗忘。我是在springboot项目中创建了一个类,需要创建索引的时候,在Test里写个函数跑一边就可以了。package com.sohu.umab.usercenter.service.impl;import org.springframework.data.domain.Sort;import org.springframework.data.mongodb.core.MongoTem原创 2020-12-03 14:17:58 · 1049 阅读 · 4 评论 -
Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL
在写Mapper文件中的SQL语句时,写完单元测试报了如下错误Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use****查了许久没发现问题,最后终于发现了。@Selec原创 2020-10-28 16:56:42 · 3055 阅读 · 1 评论 -
SpringBoot中bean注入的方法
这几天看代码看到一种新的注入方式,不再使用注解@Autowired或者@Resource,而是用构造函数注入。将需要的属性声明为private final类型,然后使用构造函数,对其进行赋值,据说这样会带来一个性能的提升。...原创 2020-09-27 14:31:45 · 837 阅读 · 0 评论 -
@RequestAttribute和@RequestParam注解的区别
在写http接口的时候,发现接口参数有两种注解,一种是@RequestAttribute,一种是@Requestparam,自己刚开始没明白区别,用postman调试的时候一直报错,后来才发现这个问题。@RequestAttribute注解的参数在项目里是自己解析出来的,并不是前端传递的。具体一点,在项目里的拦截器里会对Token信息进行解析,解析出来的参数重新放在请求里(用httpServletRequest.setAttribute(name, value)),后边接口接收参数时就用这个注解。@R原创 2020-09-10 11:24:20 · 9540 阅读 · 1 评论 -
SpringBoot程序启动后,打开URL跳转到登录界面
出现这个原因是因为你在pom文件里加了springboot的security依赖(或者就是某个依赖里包含了security模块),它会强制你进入这个登录界面,登录的password在控制台会打印出来,用户名是user。你可以不嫌麻烦直接登陆。解决方法很简单,加上一个SecurityConfig文件,手动关闭就可以了。@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdap原创 2020-09-10 11:16:19 · 2138 阅读 · 0 评论