
Java
itxiaobaishu
这个作者很懒,什么都没留下…
展开
-
XStream常用注解
业务中遇到的xml转bean的场景,记录一次xStream解析xml中注解的使用,如下是xml节点与bean字段的对应写法:xml:<?xml version="1.0" encoding="UTF-8"?><student name="xiaobai"> <report> <subject>language</subject> <score>100</score> </report原创 2021-03-24 14:31:08 · 2153 阅读 · 0 评论 -
springboot文件上传500,重启服务正常
最近生产环境发现一个问题,后台管理系统有一个上传文件保存数据库的功能,每隔一段时间就会出现上传失败,重启服务就可以正常上传。分析问题:由于服务在启动时会在服务器的/tmp目录下生成tomcat.827296577384433988.8005(work/Tomcat/localhost/ROOT)和tomcat-docbase.546140289861349437.8005这样两个文件夹,对于Multipart(form-data)的方式处理请求时,默认就是在tomcat-docbase目录下创建临时文件原创 2021-01-14 14:46:30 · 834 阅读 · 0 评论 -
mysql8.0大小写敏感问题巨坑,一定要提前看了!!!
线上业务升级到mysql8.0后遇到一个大坑,就是表名大小写问题,我们知道在mysql5的时候,只要在配置lower_case_table_names=1就可以解决大小写敏感问题,但是mysql8.0初始化后,一旦启动服务在设置无效。如果已经晚了,那必须把MySQL数据库 data目录下所有文件删除,修改配置文件再启动。数据库会重新加载...原创 2020-11-27 17:13:19 · 1600 阅读 · 0 评论 -
Topic(s) [my-topic1] is/are not present and missingTopicsFatal is true
SpringBoot整合kafka时报错:Topic(s) [my-topic1] is/are not present and missingTopicsFatal is true分析原因是:消费者监听接口,监听的主题不存在解决办法:yml文件中增加如下配置spring.kafka.listener.missing-topics-fatal=false...原创 2020-11-10 16:14:44 · 1805 阅读 · 0 评论 -
编码、哈希、加密
对于编码、哈希、加密,有些人工作了很多年也分不清楚这些算法的区别,也可能大家都叫习惯了,下面根据自己的理解简单的做一下区分:是否可逆上进行区分:编码、对称加密及非对称加密算法都是可逆的,而哈希算法不可逆。 是否使用密码区分:编码及哈希算法不使用密码,对称加密使用一个密码,而非对称加密使用两个密码。编码算法编码算法是一套二进制与字符的转换规则,能让人类更好的识别二进制数据,能让计算机理解人类抽象的文字,编码算法是可逆的。 常见的编码有ASCII、Unicode、UTF8、URL编码、HTML编码原创 2020-06-24 09:35:55 · 384 阅读 · 0 评论 -
限流方案
程序开发时,系统在短时间内访问量暴增,会导致程序崩溃,这个时候我们需要使用限流,下面对get到的限流方案整理如下:合法性验证限流:比如验证码、IP 黑名单等,这些手段可以有效的防止恶意攻击和爬虫采集; 容器限流:比如 Tomcat、Nginx 等限流手段,其中 Tomcat 可以设置最大线程数(maxThreads),当并发超过最大线程数会排队等待执行;而 Nginx 提供了两种限流手段:一是控制速率,二是控制并发连接数; 服务端限流:比如我们在服务器端通过限流算法实现限流;合法性验证限流:为最常转载 2020-05-22 12:08:17 · 696 阅读 · 0 评论 -
记录一次Tomcat中Context的配置问题
问题描述:业务是在tomcat部署一个服务,任务执行失败时发邮件,两台相同环境的服务器部署相同的代码,其中一台服务器启动tomcat时就一直发邮件。查找问题:由于前期没有权限操作服务器,走了很多弯路,具体查找过程就不赘述了。解决问题:tomcat的xml配置如下:<Host name="172.18.8.110" appBase="/www/data/tomcat" unpac...原创 2020-04-23 11:51:24 · 187 阅读 · 0 评论 -
获取用键盘输入常用的两种方法
方法一,通过ScannerScanner input = new Scanner(System.in);String s = input.nextLine();input.close();方法二,通过BufferedReaderBufferedReader input = new BufferedReader(new InputStreamReader(System.in));...原创 2020-03-31 10:37:39 · 189 阅读 · 0 评论 -
==与equals
==:它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)。equals():它的作用也是判断两个对象是否相等。但是它一般有两种使用情况:情况一,类没有重写equals()方法,通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象; 情况二,类重写equals()方法,一般我们都重写...原创 2020-03-30 16:25:32 · 107 阅读 · 0 评论 -
Spring Boot配置文件加载顺序
SpringBoot加载配置文件,由高到低顺序如下:在命令行中传入的参数。 SPRING_APPLICATION_JSON中的属性,SPRING_APPLICATION_JSON是以JSON格式配置在系统环境变量中的内容。 java:comp/env中的JNDI属性。 Java的系统属性,可以通过System.getProperties()获得的内容。 操作系统的环境变量。 通过ra...原创 2020-03-26 13:50:45 · 196 阅读 · 0 评论 -
properties文件的属性值为中文,读取时乱码问题
我们在开发中使用properties文件时,常会遇到这样的问题,比如说:test.property.value=中文值我们想把属性值设置成中文,这样无论使用@value还是直接读取出来会出现乱码,总结了两种解决方案如下:把属性值直接转成unicode编码,写在文件中,如: test.property.value.unicode=\u4e2d\u6587\u503c ...原创 2020-03-19 10:54:00 · 1682 阅读 · 0 评论 -
Dockerfile的主要指令
Dockerfile主要有如下指令:FROM指令:指明了当前镜像继承的基镜像。编译当前镜像时会自动下载基镜像。示例: FROM ubuntu MAINTAINER指令:指明了当前镜像的作者。示例: MAINTAINER xiaobai RUN指令:可以在当前镜像上执行linux命令并形成一个新的层。RUN是编译(build)时的动作。示例有两种格式,CMD和...原创 2020-03-10 11:39:02 · 540 阅读 · 0 评论 -
Docker常用命令及参数
Docker镜像命令:Docker镜像检索: docker search 镜像名 检索redis输入: docker search redis Docker镜像下载: docker pull 镜像名 下载redis输入: docker pull redis Docker镜像列表: docker images 其中REPOSITORY是镜...原创 2020-02-18 16:33:20 · 464 阅读 · 0 评论 -
SpringBoot 注解
总结一些springboot常用的注解:@SpringBootApplication:是SpringBoot的核心注解,是一个组合注解,不使用@SpringBootApplication,也可以直接在入口类上使用@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan代替。 @ImportResource:加载xml的配...原创 2020-02-18 15:49:32 · 85 阅读 · 0 评论 -
在Gihub上精准搜索开源项目
假设我们现在要搜索java,相信大部分小伙伴都是直接在搜索框里输入:“java”,然后一回车,你就会发现情况像下面这样:搜索结果会显示非常多的开源项目,根本找不到如何找到自己感兴趣的开源项目,所以这样搜索非常的不准确。所以我们需要一个稍微精确一点的搜索方法。在搜索之前,我们先来了解一下一个开源项目有哪些组成部分:name: 项目名 description: 项目的简要描述 项目的源...原创 2020-02-17 10:12:55 · 200 阅读 · 0 评论 -
spring的注解
近期想深入学习spring,整理一些spring常用的注解:声明Bean的注解:@Component组件,没有明确的角色。 @Controller在展现层(MVC->SpringMVC)使用。 @Service在业务逻辑层(service层)使用。 @Repository在数据访问层(dao层)使用。 @Scope描述Spring容器是如何新建Bean的实例的,默认是省略了@...原创 2020-02-10 15:02:07 · 110 阅读 · 0 评论 -
mybatis中LIKE模糊查询
mybatis中对于使用like来进行模糊查询的几种方式:使用${...}:由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There...原创 2020-02-04 10:19:04 · 432 阅读 · 0 评论 -
bootstrap.min.css.map
springboot后台自定义handler拦截所有请求,redirect重定向后总有一个/error的请求,最后定位到问题是请求/bootstrap/css/bootstrap.min.css.map静态资源时404了,查找整个项目发现在bootstrap.min.css文件的结尾有/*# sourceMappingURL=bootstrap.min.css.map */这样一段代码,但是项目中...原创 2020-01-22 17:12:50 · 4036 阅读 · 0 评论 -
springboot 项目 使用 nginx 代理 https 重定向 http 无法访问
问题:描述:一个springboot的http项目,公司使用nginx配置了ssl证书通过https访问,但是后台代码使用了redirect重定向,结果response返回都是http无法访问。先贴一下nginx的配置server { listen 8080 ssl; server_name 127.0.0.1; ...原创 2020-01-22 14:11:18 · 3434 阅读 · 1 评论 -
redis更新缓存
当我们做项目时,总会遇到一些数据经常被查询,但是不会经常修改,对于这样的数据大家都会想到使用缓存处理。今天对使用redis更新缓存整理几个方案,有不足的地方还望多多指正。第一种:方案:后台设置更新缓存按钮由操作人员操作或者使用定时任务,从DB查找最新数据集合,删除原缓存数据,存储新数据到缓存; 问题:更新过程中删除掉缓存后刚好有业务在查询,那么这个时候返回的数据会是空,会影响用户体验;...原创 2020-01-19 16:04:53 · 3938 阅读 · 0 评论 -
怎么把自己的代码贡献到github开源项目
作为一名码农能贡献代码到github上是多么荣耀的事情,但是自己写的代码怎么上传到别人的开源项目呢?学习别人的博客成功贡献了代码,地址如下:https://blog.youkuaiyun.com/mapengbo521521/article/details/80244087重点是添加上游地址,添加后本地./git目录下的config文件中会多[remote "upstream"]这样一项。欢迎评论学习,...原创 2019-12-31 16:57:13 · 240 阅读 · 0 评论 -
idea中maven右侧的Dependencies里jar包红色下划线
记录idea中maven右侧的Dependencies里部分jar包下有红色波浪线(如下图)。产生的原因是:idea由2018版本更新到2019后,setting里的JRE变成了11版本(如下图),修改为8版本解决。如有更多问题的解决办法,欢迎留言讨论。...原创 2019-12-20 11:09:35 · 1489 阅读 · 2 评论 -
The temporary upload location *** is not valid
spring boot项目在生产环境运行一段时间后,一次文件上传报如下异常:Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7333297176951596407.9008/work/Tom...原创 2019-09-10 11:09:30 · 9892 阅读 · 4 评论 -
centos7.4环境搭建Elasticsearch FileBeat Kibana日志管理系统
随着分布式、微服务的广泛应用,每次出问题了需要查询日志时很不方便,为了达到快速查看、快速分析解决问题的目的,尝试搭建EFK日志管理系统,总结的不足还望指正。一、安装Java JDKElasticsearch需要运行在Java 8 及以上,所以需要先安装Java8,具体安装过程不在赘述。二、安装Elasticsearch本文以Elasticsearch6.2.4为例,注意Elasti...原创 2019-05-28 11:42:14 · 910 阅读 · 0 评论 -
get post 乱码问题
解决post请求乱码:可以在web.xml里配置一CharacterEncodingFilter过滤器,设置utf-8。解决get请求乱码:修个tomcat配置文件添加编码与工程编码一至。 对参数重新编码,String str = new String(Request.getParamater("str").getBytes("ISO8859-1"), "utf-8");...原创 2019-03-28 09:50:01 · 88 阅读 · 0 评论