- 博客(57)
- 收藏
- 关注
原创 动态生成定时任务并管理
import com.newtv.cpms.common.util.ScheduleBeanUtils;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.SchedulingException;import org.springframework.scheduling.TaskScheduler;import org.springframework.sc.
2022-04-26 09:55:59
384
原创 mysql登录报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open
系统是redhad8,binary方式安装完mysql之后,mysql命令登录不成功,报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory。按照百度的方法都不成功,应该和系统版本有关,后来自己想到一个方法:yum install libncurses*,完美解决问题。CentOS 8: Cannot prepar
2022-04-02 10:29:04
1950
原创 contos8安装docker报错podman
docker安装,参考官方文档Install Docker Engine on CentOS | Docker Documentationcontos8安装docker报错podman,参考CentOS 8 中安装 Docker 出现和 Podman 冲突的问题 - Super元素 - 博客园
2021-09-16 16:43:59
154
原创 栈的深度以及stackoverflow解决方案
栈是一种逻辑数据结构,是JVM虚拟机中的一块内存区域,栈深度就表示着栈所占内存的大小,深度越大,代表可以执行的方法越多。栈的深度参考:https://blog.csdn.net/qq_28385797/article/details/534686651)StackOverFlowError:若Java虚拟机栈的内存大小不允许动态扩展,那么当线程请求的栈深度大于虚拟机允许的最大深度时(但内存空间可能还有很多),就抛出此异常2)OutOfMemoryError:若Java虚拟机栈的内存大小允许动态
2021-07-20 09:53:30
792
原创 保证接口的幂等性
幂等性原理和实现的几种方式:幂等性是分布式环境下常见的问题;幂等性指的是多次操作,结果是一致的。(多次操作数据库数据是一致的。)常见的解决幂等性的方式有以下:1.唯一索引;保证插入的数据只有一条;2.token机制;每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断tokenhttps://blog.csdn.net/LiuAustin/article/details/104439239
2021-05-21 14:32:39
90
原创 elasticsearch安装ik分词器
各种版本的ik分词器地址https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v6.6.0我的elasticsearch版本6.4.2就下载相同版本的ik分词器。分词器解压路径:elasticsearch-6.4.2\plugins 在plugins目录下新建目录analysis-ik,将下载好的分词器解压到analysis-ik中分词器配置plugin-descriptor.properties文件:配置ja
2021-03-09 15:56:36
530
原创 Elasticsearch自定义评分算法
官方文档地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/boosting-by-popularity.html
2021-02-26 16:20:03
280
原创 redis数据结构
redis底层数据结构https://blog.csdn.net/abel_liujinquan/article/details/89339599redis set数据结构https://www.jianshu.com/p/28138a5371d0?utm_campaignredis zset数据结构https://www.jianshu.com/p/fb7547369655redis hash 数据结构https://blog.csdn.net/mccand1234/article
2021-02-24 15:16:16
63
原创 elasticsearch 按照查询条件批量修改字段值
把所有不存在showTime属性的数据,设置showTime属性值=createTime属性值POST cms/_update_by_query{ "query": { "bool": { "must_not": [ { "exists": { "field": "showTime" } } ], "must": [ { "...
2020-11-11 14:11:00
1713
原创 @ControllerAdvice中使用redis记录缓存
需求controller的url及参数作为key值,缓存结果及接口返回结果,redis需要有开关,开关开启正常使用redis缓存,禁用时不再对任何结果进行缓存@ControllerAdvice("com.newtv.search.serviceapi.controller")配置需要被缓存的接口路径,以防其他不需要被缓存的接口也走进来开关启用和关闭的实现,当配置中spring.cache.type = REDIS时才启用,否则此ResponseBodyAnalysis类不生效。@Condit.
2020-11-02 14:33:21
237
原创 springboot配置拦截器
package com.newtv.search.serviceapi.config;import com.alibaba.fastjson.serializer.SerializerFeature;import com.alibaba.fastjson.support.config.FastJsonConfig;import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;import com.newtv.sea.
2020-11-02 14:25:41
102
原创 springboot整合redis
实例化RedisTemplate<String, Object>package com.newtv.search.serviceapi.config;import com.newtv.search.serviceapi.common.RedisUtil;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.context.anno.
2020-11-02 14:19:57
109
原创 elasticsearch查询聚合数据内按照某一个值查找有交集的数据
聚合数据例子如下:"channelCode": [ { "code": "12212", "drm": "0", "vipFlag": "0" }, { "code": "500001742", "drm": "0", "vipFlag": "0" ...
2020-09-14 17:13:19
1474
原创 替换具体对象中的“null“属性值的字段值为null
在java对象中"null"属性值不太合理,用null来代替会更好public List<CmsContentDTO> deleteNullData(List<CmsContentDTO> newList){ Class c = CmsContentDTO.class; Field[] fileds = c.getDeclaredFields(); for(int i=0;i<newList.size();i++){ CmsCont
2020-09-11 16:32:18
934
原创 elasticsearch 同一个条件多匹配值查询
terms实现多值匹配channelCode.code是个listGET cms_45/_search{ "query": { "nested": { "path": "channelCode", "query": { "terms": { "channelCode.code": [ "0", "9999000011" ] } ...
2020-09-01 14:34:15
4841
原创 springboot 整合swagger 404问题解决
写个类UrlMatchConfig extends WebMvcConfigurationSupport 再加上下面的代码@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations( "classpath:/"); registry.addResourc..
2020-07-30 11:20:13
788
原创 es大数量查询
大数据量想要一次性输出解决方案search_after先根据1语句查出数据,一定要根据唯一的字段做排序,得出最后一个数据值填到第2个 "search_after":["22777778"],中查询,原理就是查询该数据往后的所有数据,排序要和第一个语句一致。1.GET cms_5/_search{ "from":0, "size":10000, "_source": { "includes": ["name", "contentId"], "exclu...
2020-07-21 17:45:00
995
原创 es scroll slice深度分页
scroll保持结果1分钟,查询结果花费的时间不能超过1分钟,不然此次生成的scrollid会失效,不能继续查询下一轮数据,每次查询的数据量可以用size定义,深度分页的实现就是先用1,2语句查询出结果,得到scroll_id,把这个值贴到3中执行查询,只要前后时间差在设定时间范围内scroll_id没有失效就可以实现翻页查询,每次查询都是接着上次查询最后的位置做查询。在做大数据量的数据迁移的时候可以用深度分页1.GET /_search?scroll=1m{ "sort": [
2020-07-17 11:54:24
1483
原创 Gson JsonObject转String,Object转JsonElement,String转JsonElement
JsonObject转String:Gson gson = new Gson();String jsonString = gson.toJson(object);JsonParser jsonParser = new JsonParser();String转JsonElement:JsonElement appKey = jsonParser.parse("aaa");Object转JsonElement:JsonElement classifyElement = jsonParser.
2020-07-08 10:25:29
6358
原创 mybatis ${},#{}两种传参区别
#{}拿到值之后,拼装sql,会自动对值添加单引号”${}则把拿到的值直接拼装进sql,如果需要加单引号”,必须手动添加,一般用于动态传入表名或字段名使用,同时需要添加属性statementType=”STATEMENT”,使用非预编译模式。查询表明动态变换时可以使用${}方式传入表名查询排序order by XXX时使用${}方式凡是不需要单引号的参数传参 都要使用${}方式使用#可以很大程度上防止sql注入#{param} :以预编译的形式,将参数设置到sql语句中,Prepare.
2020-07-03 10:50:00
191
原创 nested嵌套查询和aggregations
嵌套查询查的secondCategory必须是[]这样的数据才可以,如下图classify是不可以的GET cms_5/_search{ "query": { "nested": { "query": { "match": { "category.id": {...
2020-07-03 10:21:11
730
原创 @JSONField(name = “XXX“)不生效
我项目是springboot ,@JSONField(name = "XXX")不生效,试了网上说的方法都不行网上说的配置启动项继承WebMvcConfigurerAdapter加上以下bean或者重写 下面的方法@Beanpublic HttpMessageConverters fastJsonHttpMessageConverters() { FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessag
2020-07-02 16:18:42
9322
原创 浏览器请求接口,返回字体显示不同原因分析
我原来的接口返回是第二张图的效果,修改后是第一张图的效果,单看返回的话只是以为是字体的问题,而且第一个在添加如下http配置之前还是乱码:http: encoding: force: true charset: utf-8 enabled: true修改后的代码直接返回一个对象,未做任何处理。分析原来的代码返回值不是直接返回对象,而是这样ResponseEntity.ok().header("Connection","keep-alive").body(data)
2020-07-01 17:13:06
409
原创 mysql查当前日期前一天,前一周,前一个月,前一年时间
select DATE_SUB(DATE_FORMAT(SYSDATE(), '%Y-%m-%d'),INTERVAL 1 DAY);select DATE_SUB(DATE_FORMAT(SYSDATE(), '%Y-%m-%d'),INTERVAL 1 WEEK);select DATE_SUB(DATE_FORMAT(SYSDATE(), '%Y-%m-%d'),INTERVAL 1 MONTH);select DATE_SUB(DATE_FORMAT(SYSDATE(), '%Y-%m-%d'
2020-07-01 15:42:35
2280
原创 sql语句批量执行多条语句和执行一句IN语句对比
--一共费时0.005秒DELETE from pt_data_inbound_cms_h where id in(1,2,3,4,5);--一共费时0.004*5DELETE from pt_data_inbound_cms_h where id=1;DELETE from pt_data_inbound_cms_h where id=2;DELETE from pt_data_inbound_cms_h where id=3;DELETE from pt_data_inbound_cms_h
2020-07-01 15:31:39
923
原创 Premature end of Content-Length delimited message body 报错原因
我在读取es数据的时候报这个错。原因是:我配置了4个logstash实例读取同一个es的数据,当我关掉这四个logstash后es读取数据恢复正常
2020-06-30 13:56:38
3603
原创 Jackson 和fastjson的注解使用对比
Jackson下的@JsonInclude(JsonInclude.Include.NON_NULL)属性值为null的不参与序列化@JsonIgnore属性值不参与序列化@JsonProperty("title") jacson下的 返回序列化的属性值名称为title@JSONField(name = "title")fastjson下的 返回序列化的属性值名称为titlepublic String getName() { return name;}@J...
2020-06-24 17:59:47
413
原创 已知对象名和不知对象名时反射应用
反射获取类xxx有多个对象Class<?> val = xxx.getClass();获取类下的某个方法Method setHighLightName = val.getMethod("setHighLightName", String.class);//String.class根据自己方法参数定义执行某个方法String checkName = "aaa";setHighLightName.invoke(object, checkName);已知某.
2020-06-24 17:02:33
102
原创 如何快速删除一个对象内的某个属性
我首先想到的是转换成map,因为map.remove("")可以删除某个key值对应的数据,但是对象直接转换成map麻烦,直接转换会报错。发现spring有提供一个好方法,可以把一个对象a转换成b对象BeanUtils.copyProperties(a, b);有了这个方法,可以定义一个对象b把需要删除的属性从a中删除其他的属性都放到b中,就可以了。...
2020-06-20 18:12:05
1344
原创 如何获取一个set的第一个值,或者获取一个map的第一个key值
maps.keySet()是一个Set<String>的set遍历的方法有三种参考:https://www.cnblogs.com/austinspark-jessylu/p/7839820.html文章迭代的方式取maps.keySet().iterator().next()
2020-06-20 18:06:38
3685
原创 生成html格式的swagger文档
maven配置<!-- swagger2 --><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>RELEASE</version></dependency><dependency> <group
2020-06-20 17:56:33
397
1
原创 用swagger测试springboot项目中的controller接口
1.swagger环境配置:在需要使用swagger的模块pom下添加以下配置:<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>RELEASE&l...
2020-04-22 14:54:11
512
原创 Elasticsearch查询数据常用语句
单条件查询,以下两种查询结果相同GET cms_5/_search{ "query":{ "bool": { "must": [ {"match": { "year": "2018" }} ] } }}GET cms_5/_search{ "query": { "term"...
2020-04-17 13:57:03
2327
原创 Elasticsearch跨级群同步数据
logstash可以实现这个功能下载安装好logstash,我下载的是logstash-7.6.2,安装地址:https://www.elastic.co/cn/downloads/logstash官方文档参考:https://www.elastic.co/guide/en/logstash/current/index.html实现跨级群同步数据很简单,就配置个文件就好了,启动命令D:...
2020-04-16 14:23:40
341
转载 java并发编程面试题
Java并发编程73道面试题及答案 —— 面试稳了ImportNew 今天(给ImportNew加星标,提高Java技能) 转自:乌枭文章链接 https://blog.csdn.net/qq_34039315/article/details/785493111、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(Use...
2019-02-01 16:10:59
115
原创 内外连接查询
表A记录如下:aID aNum1 a200501112 a200501123 a200501134 a200501145 a20050115表B记录如下:bID bName1 20060324012 20060324023 20060324034 20060324048 200...
2018-11-09 16:06:52
146
原创 excell表数据导入出现异常空格不能删掉
EXCEL导入的奇怪空格下表列举了一些常用字符的转义序列。Unicode 字符值 转义序列 含义 类别\u0008 \b Backspace \u0009 \t 制表符 空格\u000A \n 换行 行结束符\u000B \v(参见此表后面的注释。) 垂直制表符 空格\u000C \f 换页 空格\u000D \r 回车 行结束符\u0020 空格 空格\u0022 " 双...
2018-11-06 15:58:58
812
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人