- 博客(86)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 sprinbboot 2.7启动不生成日志文件
新增了一个springboot项目,通过idea 调试,并且在idea 的vm options中指定-Dlogging.config=classpath:logback-pro.xml 或者 -Dlogging.config=classpath:logback-dev.xml 都能正常生成对应的日志文件。问题依旧,于是猜测应该是启动的时候,没加载到指定的配置,试着把-Dlogging.config=classpath:logback-pro.xml 提到 -jar 前,结果也终于达到预期。
2023-10-27 00:57:25
4301
原创 springboot 2.7 文件上传采坑Required request part ‘file‘ is not present
由于是采用form-data 格式:multipart/form-data,初步分析是 springboot 在接收到fileList时,form表单的格式无法解析为json序列化,具体还待后面细分析。spring.mvc.hiddenmethod.filter.enabled=true配置,默认为false, 在springboot的旧版本中,默认是true.本意是多文件批量上传,如此不行,则继续单文件上传,转换思路是把多文件压缩为zip文件,然后服务端接收到后,再行解压,即可。
2023-10-13 01:01:04
4307
原创 springboot2.6.4 集成freemark(404问题,只返回模板名称问题)
同时需要特别注意,如果test.ftl 文件在目录resources/templates/的下一级目标,比如在目录resources/templates/ftl/目录下,则controller的返回模板要携带该路径:为。查阅了其他文章,说是springboot自2.2以后,模板的后缀改为.ftlh了。但是我在命名模板为test.ftlh时,仍然报404,后修改为test.ftl 正常了。问题2:get请求过程中,返回结果类型为 test(模板名称),而非test.ftl的模板内容。如上,即可正常启动。
2023-07-23 02:12:33
3460
原创 Sublime Text 正则表达式处理
按钮以启用正则表达式模式。4. 在查找面板中,输入匹配您想要删除的特定文字的正则表达式模式。例如,如果您想要删除包含单词"example"的行,可以使用模式。Sublime Text会高亮显示所有匹配模式的行。1. 打开Sublime Text。sublime 正则表达式匹配不含指定文字删除行。3. 在查找面板上方,点击。选择所有高亮显示的行。匹配指定文字结尾 空行替换。匹配包含指定文字 空行替换。
2023-07-12 16:43:58
5083
原创 FeignClient默认连接方式HttpURLConnection之坑---get请求变为post,访问405
在项目中,使用feignClient 进行http 服务调用,feignClient的默认连接方式为HttpURLConnection,因为HttpURLConnection没有连接池,并发高的时候,会有一定的网络开销,在做项目优化的时候,替换改为okHttp以便复用其连接池。我们作为调用方,表象是用的get请求,实际走的是post请求,所以没有影响,后面改为okHttp后,okHttp不会做这种特殊的转换,所以我们的请求还是get请求,故而就会有问题了。
2023-03-14 23:09:16
1901
原创 IDEA: the file too large: showing a read-only && This view is read-only
IDEA: the file too large: showing a read-only && This view is read-only,idea 文件太大,导致文件只读不能打开
2022-11-28 22:13:12
3329
原创 spirngboot项目.mvn/wrapper/maven-wrapper.properties‘ does not exist.
Exception in thread "main" java.lang.RuntimeException: Wrapper properties file '~/.mvn/wrapper/maven-wrapper.properties' does not exist. at org.apache.maven.wrapper.WrapperExecutor.forWrapperPropertiesFile(WrapperExecutor.java:54)
2022-11-21 04:15:57
4678
原创 shell获取指定进程名称的pid
主要是根据命令: jps -l | grep 进程名称, 来实现sysapp$ jps -l11943 sun.tools.jps.Jps16463 org.logstash.Logstashsysapp$ jps -l | grep Logstash16463 org.logstash.Logstash通过shell脚本执行,则可获得APP_PID为16463#!/bin/bashset -euo pipefail# 填写自己要过滤的进程名称APP_PID...
2022-05-30 01:33:20
6468
4
原创 InvalidDefinitionException: No serializer found for class java.lang.Object and no properties discove
使用springcloudgateway 搭建项目后,写个test验证返回响应,响应结果报如下错误:{ "timestamp": "2022-04-08T14:21:45.160+0000", "path": "/tech/health/check", "status": 500, "error": "Internal Server Error", "message": "Type definition error: [simple type, class .
2022-04-09 22:18:02
12295
3
原创 idea 重新下载jar包
maven 依赖的jar包,很多时候,同一个jar包会存在多个版本,删除其中一个后,重新编译,会把旧jar 由加载回来了方式一:对maven reimport方式 二:在命令行,直接执行以下命令mvn -U idea:idea
2022-01-24 04:40:34
3108
原创 HttpServletRequest在spring中获取及使用
一般在controller 中直接获取:HttpServletRequestHttpServletRequest 是线程安全的,所以在service层可以直接通过注入使用@Autowiredprivate HttpServletRequest servletRequest;业务逻辑中,也可通过RequestContextHolder 获取ServletRequestAttributes requestAttributes1 = (ServletRequestAttributes)..
2022-01-23 22:11:21
1677
原创 redis 基于时间窗口的限流
public boolean limitRateActionAllowed(LimitRateActionEnum actionKeyEnum, String keyParam, int period, int maxCount) { // 生成唯一的key actionKeyEnum = actionKeyEnum == null ? LimitRateActionEnum.GENERATOR : actionKeyEnum; keyParam...
2021-12-06 20:50:09
733
原创 springboot 集成rabbtiMq
本文主要解决以下几个问题1、rabbtiMq的消息队列topic,交换器exchange和路由key routKey的概念及关系2、rabbitMq消息的生产和消费的规则逻3、springboot集成rabbitMq4、通过代码自动创建topic 、exchange、以及指定routKey绑定topic和exchange一、rabbtiMq的消息队列topic,交换器exchange和路由key routKey的概念及关系1、消息队列topic: 本质就是.........
2021-10-13 00:30:48
458
原创 springboot动态调整日志级别-LoggingSystem
在日常项目开发中,排查问题,通常第一步是根据日志定位问题,故而,我们总是会在关键节点,尽可能多的输出日志,但是一旦系统上线,大量的日志输出,明显会影响系统的性能。 通常,我们知道可以调整日志级别,在线上用更高的日志级别(info warn error),但是变更日志级别,总是需要重新发版,如果能动态调整日志级别,并实时生效,这不失为一个不错的办法。由此,springboot的LoggingSystem可以解决这个问题。具体用法如下: @Autowired pri...
2021-09-14 01:19:25
2290
2
原创 sshd:root@notty: linux 被暴力登录处理
一、背景今天打开自己的私有服务器,猛然间发现最近登录失败将近2000次,登录失败的ip134.209.236.115德国法兰克福。一顿吃鲸。。。。由于我是私有服务器,在进行外网和内网ssh的端口映射时已经提前改为非22端口了,这算是第一道防线。密码设置也相对复杂,所以比较幸运的是,还好还未被攻破,赶紧处理一番二、常规处理方案1、修改公网的端口和内网端口映射为不常见的端口(一般ssh端口默认是22)。如果是阿里、腾讯云服务,则可以变更ssh端口为非22端口.同时配置安全策略组。...
2021-08-19 00:56:23
14323
原创 Apache Doris-(官方文档)
官方文档:http://doris.apache.org/master/zh-CN/快速开始文档:http://doris.apache.org/master/zh-CN/installing/compilation.html
2021-08-12 00:35:58
14066
2
原创 TransmittableThreadLocal-可在父子线程中传递变量
ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal的区分及原理:推荐博文:Java 学习笔记(三)之 ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal作者结论总结:1) ThreadLocal 用来存储线程本地变量,仅是线程自己存储数据的,若一个线程要使用另一个线程存储在 ThreadLocal 变量,除非 存储在 ThreadLocal 中的 Va...
2021-08-06 05:59:18
404
原创 两个map的value 进行合并-Map的merge操作
public static void main(String[] args) { HashMap<String, List<Long>> failedMapSingle = Maps.newHashMap(); HashMap<String, List<Long>> failedMap = Maps.newHashMap(); failedMap.put("a", Lists.newArrayList(...
2021-07-01 15:46:49
1555
原创 springboot和springcloud 版本匹配
查看最新的springboot 和springcloud 版本匹配地址:https://start.spring.io/actuator/info当前版本匹配:"spring-cloud": { "Hoxton.SR11": "Spring Boot >=2.2.0.RELEASE and <2.3.11.BUILD-SNAPSHOT", "Hoxton.BUILD-SNAPSHOT": "Spring Boot >=2.3.11.BUILD-SNA...
2021-05-12 16:32:01
447
原创 python 精度及位数处理
1、其他博文说明的用法:设置 decimal.getcontext().prec = 3decimal.getcontext().prec = 3print(decimal.Decimal('2.3') / decimal.Decimal('3')) # 结果:0.767print(decimal.Decimal('1.22222') * decimal.Decimal('0.01')) # 结果:0.0122print(decimal.Decimal('1') / decimal.De...
2021-04-10 15:46:58
2689
原创 shell 循环执行sql脚本
线上批量更新,数量过多,流程上必须写脚本,就试着先写个简单的,逻辑: 每次更新一条,根据id逐条更新。后续其实可以优化为分页批量执行(limit x,y 或者 where id < last and id >= id +1000),效率会更高。#!/bin/bashi=1step=1#cnt=$(/usr/local/MySQL/bin/mysql -u root -p -Dtf_test -s -e "${cmd}")while (($i<=3))do ...
2021-03-10 15:47:14
3404
原创 java list对象去重
Category gc = new Category(); gc.setId(1L); gc.setCategroyName("name1"); Category gc2 = new Category(); gc2.setId(2L); gc2.setCategroyName("name2"); Category gc3 = new Category(); gc3.setId(1L); .
2021-02-02 16:29:38
425
原创 mybatis-plus 特殊用法小记
1、指定字段或者函数和条件进行查询查询条件可以按照mybatis-plus 的 wrapper 进行封装,然后使用@select 写函数 或者指定字段LambdaQueryWrapper<CouponReceiver> qw = Wrappers.lambdaQuery(CouponReceiver.class);qw.in(CouponReceiver::getCouponInfoId, couponIdList).groupBy(CouponUser::getCouponInf.
2020-12-23 01:13:32
573
原创 springboot + springDataJpa 用法小记
1、自定义查询语法进行分页定义 repository接口,同时继承JpaSpecificationExecutor,然后即可使用Repository.findAll(specification, pageable); 进行分页public interface IAppJdOrderRecordRepository extends JpaRepository<AppJdOrderRecord, Long>, JpaSpecificationExecutor<AppJ...
2020-12-23 00:56:07
313
原创 钉钉自定义机器人日志报警
引入钉钉的maven 依赖 <dependency> <groupId>com.aliyun</groupId> <artifactId>alibaba-dingtalk-service-sdk</artifactId> <version>1.0.1</version> <exclusions> ...
2020-12-18 10:42:21
963
原创 开发springboot start
springboot start的核心思想,就是针对spring的一些配置进行约定并封装,简化配置流程,方便项目直接引入和使用。我们在开发场景中,对于一个springboot start 模块,比较粗略的开发认知是:1、通过application.properties 或application.yaml 文件配置相关的 属性2、在实际业务中,注入 start的 service 方法,直接调用使用如此,自己动手开发一个start的核心流程:1、创建一个springboot 项目,引入.
2020-12-15 01:28:00
1120
原创 springboot自定义logbackAppender
1、背景:自定义appender, 针对日志级别,指定日志级别的输出,同时发送到钉钉,实现日志报警监控2、实现方式:以下两种方式,实现任意一个即可1)、 自定义Appender 继承UnsynchronizedAppenderBase<ILoggingEvent>extends UnsynchronizedAppenderBase<ILoggingEvent>具体实现:@Getter@Setterpublic class DingTalkA.
2020-12-15 00:55:53
5036
原创 springboot快速集成定时任务
1、启动类增加 @EnableScheduling 注解@SpringBootApplication@ComponentScan({"com.xxl.job.admin.controller","com.xxl.job.admin.core.conf","com.xxl.job.admin.localjob","com.xxl.job.admin.service"})@MapperScan("com.xxl.job.admin.dao")@EnableSchedulingpublic clas
2020-12-04 22:07:18
270
1
原创 springboot集成kafka + 多groupId 配置消费组
1、添加maven 依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>2、配置producerimport org.apache.kafka.clients.prod...
2020-07-27 21:51:55
23425
4
原创 konga 连接postgresql 12+启动异常:error: column r.consrc does not exist
mac 环境下,konga 配合postgresql 启动,异常如下:A hook (`orm`) failed to load!error: column r.consrc does not exist at Connection.parseE (/Users/tangfeng/dev/github/konga/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:539:11) at Connection
2020-07-10 15:36:59
2868
原创 mac 安装Kong(二) could not find OpenResty ‘nginx‘ executable
mac 下安装kong(一)后来帮同事调试nginx ,又在本地单独装了 nginx ,于是把openresty给关闭了。验证完后,在重新启动openresty 和kong ,发现怎么也启动不起来了。# 启动kong kong start -c /etc/kong/kong.conf# 出现的异常Error: /usr/local/share/lua/5.1/kong/cmd/start.lua:41: could not find OpenResty 'nginx' executable
2020-07-07 11:23:44
1271
原创 mac 下安装kong(一)
官网:https://konghq.com/github:https://github.com/Kong可以在空的官方文档中,选择mac 环境安装,当然也可以选择其他模式的安装https://konghq.com/install/?itm_source=website&itm_medium=nav开源的kong 管理页面,非官方(两个都可以)kong admin:https://github.com/pocketdigikong-admin-uikongga:...
2020-07-07 11:12:56
1502
原创 一条命令替换mac的 homebrew 下载源
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"拷贝源:https://www.bilibili.com/video/av328392274/推荐的另一篇博文:Mac Homebrew 如何更换国内镜像源
2020-07-02 17:43:03
337
1
原创 crc32 散列均衡
应用场景中,需要让一些唯一的数据,散列均匀的分布在不同的桶中,或者hash槽中,从而可以验证一些AB test 场景。public static void main(String[] args) { List<Long> list = Lists.newArrayList(); List<Long> list0 = Lists.newArrayList(); List<Long> list1 = Lists.n.
2020-06-23 10:24:27
902
原创 springboot + 携程apollo 动态配置实时生效(2)-全局生效
springboot + 携程apllo 配置实时生效(1)-指定生效springboot + 携程apllo 配置实时生效(2)-全局生效前两天写了一篇博客,springboot + 携程apollo ,实现修改apollo 配置实时生效,当时写的生效,只是针对某一bean的scope 中的配置从ApolloConfig 中获取更新的值有效,对于其他注解@Value的 Bena Scope 是不能实时生效的,基于Apollo官方文档,要想全局生效,需要使用RefreshScoup.refreshA
2020-06-15 19:40:26
2351
spring3.2.4+mybatis3.1.1 框架搭建
2016-01-17
如何通过代码解析SNMP的MIB库文件
2015-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人