java
风中~少年
以梦为马 不负韶华
展开
-
Springboot 导出、导入csv文件(包含base64图片)
注意要点:1、csv中会对数字超过12位时会变为科学计数,超过15位时其他位变为0.解决办法: 在数字后面加上 "\t"2、图片转换为base64时,sun.misc.BASE64Encoder 方法 Base64一行不能超过76字符,超过会自动换行。在windows系统表现为\r\n ,linnux表现为: \n。java.util.Base64 方法的加码不会生成换行符。建议推荐使用这个。csv工具类:package com.hikvision.modules.util;/*.原创 2022-02-17 14:50:45 · 1654 阅读 · 0 评论 -
RestTemplate 发送https请求
maven依赖:<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version></dependency>import org.apache.http.conn.ssl.SSLConnectionS..原创 2021-03-03 11:05:09 · 1167 阅读 · 0 评论 -
解决URL包含中文导致下载失败
public static String urlEncodeChinese(String url) { try { // 正则匹配中文字符和空格 和中文 括号 Matcher matcher = Pattern.compile("[\u4e00-\u9fa5]|\u00A0|\u0020|\u3000|(|)|(|)").matcher(url); String tmp = ""; wh...原创 2021-01-19 14:11:45 · 2683 阅读 · 0 评论 -
解决FastJSON 转换对象时,日期处理为时间戳格式
可以用一下方法:JSON.toJSONStringWithDateFormat(Object,dateformat,SerializerFeature.WriteDateUseDateFormat)常用日期格式:YYYY-MM-dd'T'HH:mm:ssXXX + SerializerFeature.WriteDateUseDateFormat = SerializerFeature.UseISO8601DateFormatYYYY-MM-dd'T'HH:mm:ss:sssZYYY原创 2021-01-19 11:12:48 · 2882 阅读 · 1 评论 -
springboot1.5.22 集成kafka 连接kafka失败问题
这是因为版本问题。我服务端kafka 为0.10.0.1。对应需要引入maven依赖如下:<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency><dependency> <groupId>org.apache.kafka&.原创 2021-01-19 11:06:30 · 342 阅读 · 0 评论 -
20200924 项目需要补充知识点:
1、spring-data-redis、CacheManager 缓存管理(如何配置多种缓存以及灵活切换)2、zipkin 日志收集以及pring-cloud-starter-sleuth集成zipkin 如何对微服务日志进行收集、跟踪、打印、存储、查询等。扩展存储方式。数据库(mysql/kafak/es等)...原创 2020-09-24 11:45:05 · 137 阅读 · 0 评论 -
树形结构表设计
最近面试,被问到一个树形结构如何设计表结构。我说了最常用的设计方式。1、数据存储一张表,设计字段:parent_id 。如下图:这样会导致数据量大的话递归查下效率低下。 2、设计中间表,多对一关系。但是好像都没有达到面试官的期望。这样会导致数据存储再多张表,浪费数据库内存。而且数据量大的话,关联查询效率也是问题。在此第三种设计思路就出来了:3、基于左右值编码的Schema设计,如下图:类似二叉树的设计。 ...原创 2020-08-22 17:08:30 · 3969 阅读 · 0 评论 -
js黑科技
(!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]]*~+[]]原创 2020-08-22 12:03:21 · 226 阅读 · 0 评论 -
Centos 7 crontab重启命令
原文:https://www.cnblogs.com/sxdcgaq8080/p/10730633.html1.查看cron服务的启动状态[只有cron的状态是active running的,才表示cron服务是启动的]systemctl status crond.service2.启动cron服务[命令没有提示]systemctl start crond.service3.停止cron服务[命令没有提示]systemctl stop crond.service..转载 2020-08-07 17:00:50 · 1922 阅读 · 0 评论 -
java SPI
SPI是什么SPI的英文名称是Service Provider Interface,是Java 内置的服务发现机制。在开发过程中,将问题进抽象成API,可以为API提供各种实现。如果现在需要对API提供一种新的实现,我们可以不用修改原来的代码,直接生成新的Jar包,在包里提供API的新实现。通过Java的SPI机制,可以实现了框架的动态扩展,让第三方的实现能像插件一样嵌入到系统中。Java的SPI类似于IOC的功能,将装配的控制权移到了程序之外,实现在模块装配的时候不用在程序中动态指明。所以SP原创 2020-08-03 09:50:34 · 119 阅读 · 0 评论 -
Linux 脚本手动执行成功,加入定时任务无法执行
原因:cron的环境变量和shell脚本的环境变量不一样解决办法:定时任务里面切换到root执行*/5 * * * * su - root -c "/usr/local/test.sh"或者在脚本最后一行加入:source /etc/profile原创 2020-07-01 18:02:38 · 3872 阅读 · 0 评论 -
Linux 安装 ImageMagick,并支持PNG、JPEG格式
安装所需要的支持库:$ yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel安装 ImageMagick,然后进入安装目录下执行以下命令:./configure --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gv.原创 2020-06-30 17:32:06 · 1873 阅读 · 0 评论 -
docker 安装常用软件命令
Mysql 5.7:docker run --name mysql-dev -p 3306:3306 -v /work/mysql/conf:/etc/mysql/conf.d -v /work/mysql/logs:/logs -v /work/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7进入mysql容器方法:docker exec -it 容器id /bin/bash然后查看配置文件地址:原创 2020-06-29 11:50:09 · 373 阅读 · 0 评论 -
vue 刷新页面 路由守望函数beforeEach 没有触发
在main.js中需要把组件挂载放在最下方。new Vue({ el: '#app', router, store, // 使用Vuex template: '<App/>', components: { App }})原创 2020-06-02 17:05:21 · 3758 阅读 · 1 评论 -
springboot+shiro start集成启动报错
报错信息:bean named 'authorizer' that could not be found原因是在start中启动SessionsSecurityManager注解@ConditionalOnMissingBean,如果我们写成SecurityManager,自然报错。 /** * @Description: 注意这里需要返回 SessionsSecurityManager 避免 启动报 authoricator not found 错误 * @param oa.原创 2020-05-20 11:22:12 · 783 阅读 · 0 评论 -
Mybatis 一级缓存
mytabis一级缓存在表被删除更新操作时缓存对象引用会被移除 一级缓存是会话级别的 mybatis-plus selectList和updateBatchBy方法使用了两个不同的sqlSession.原创 2020-05-15 00:11:13 · 170 阅读 · 0 评论 -
vue 2.5.2+ vuex 3.3.0 导致Failed to mount component: template or render function not defined.
vue-loader版本由13.X降低到12.X即可。原创 2020-05-13 22:19:24 · 297 阅读 · 0 评论 -
redis客户端window命令行下中文乱码
如果redis中有中文,在win10下会出现如下:原来是window命令行默认编码是gbk.可用以下方法解决:命令行输入chcp 65001(utf-8编码),然后在命令行输入 redis-cli -h 127.0.0.1 -p 6378 --raw...原创 2020-05-06 23:12:01 · 755 阅读 · 1 评论 -
Collections.emptyList()使用
Collections.emptyList()方法说明:返回一个空的集合。调用者不需要再做非空判断。返回的是一个不可变并且长度为0的静态内部类。可以减少内存开销。但是返回的空集合,不可以执行增删操作。具体源码如下:public static final List EMPTY_LIST = new EmptyList<>();public static final <...原创 2020-04-30 14:48:51 · 3285 阅读 · 0 评论 -
Spring学习过程中学到的知识点总结
目录 @AliasFor注解 @Repeatable注解 TypeFilter自定义过滤器 断言的使用 Java8接口函数编程 下面就这几个方面记录下,为以后复习做个笔记。一、@AliasFor注解:这个注解有两个用途别名。它可以注解到自定义注解的两个属性上,表示这两个互为别名,也就是说这两个属性其实同一个含义。但是需要注意互为别名的属性必须有默认值,并且...原创 2020-04-29 10:58:36 · 203 阅读 · 0 评论 -
spring源码之bean加载原理之注解篇
上一节我们讲了xml如何加载bean,本次讲解如何通过注解加载、初始化bean。不懂得可以看下我上一篇文章:前文提要注解加载的话分:xml 和 配置。如下: <context:component-scan base-package="xxx"/> @ComponentScan首先讲解基于xml配置:我们上篇文章讲过,加载xml的时候是在AbstractApp...原创 2020-04-27 01:17:44 · 917 阅读 · 0 评论 -
spring源码之bean加载原理之XML篇
一、首先spring 中定义bean的方式有三种基于xml定义 <beans><bean id="mybean" class="cn.test.***.UserService" init-method="init" destory-method="destory"> </bean><bean id="message" class="jav...原创 2020-04-25 11:37:28 · 810 阅读 · 0 评论 -
修改iptables,导致Docker应用意外停止无法启动问题
1.问题描述:服务器上开启端口时,修改了防火墙规则。重启之后发现docker某些应用意外停止,无法启动。2.分析问题:iptables是什么 iptables与docker关系2.1 iptables了解推荐:iptables详解...原创 2020-04-21 23:29:10 · 1704 阅读 · 0 评论 -
手写AQS
package com.example.demo.demo.lock;import sun.misc.Unsafe;import java.io.Serializable;import java.lang.reflect.Field;import java.util.concurrent.locks.AbstractOwnableSynchronizer;import java.ut...原创 2020-04-06 16:09:47 · 270 阅读 · 0 评论 -
java 多线程实现方式
package com.example.demo.demo.ThreadDemo;import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;/** * @description: 线程demo 测试 * 并发三要素: 原子性 可见性 有序性 * 出现线程安全的原因: * 线程切...原创 2020-04-01 22:11:12 · 157 阅读 · 0 评论 -
java 内存泄漏
链接:Java中的内存泄露转载 2020-04-01 12:29:50 · 204 阅读 · 0 评论 -
HashMap 容量为什么是2的整数幂
前几天面试问道HashMap实现原理,我巴拉巴拉一通说。然后面试官问我扩容时为什么要左移1位。我沉思了很久,没回答上来。时候查阅资料总结下:为了能让 HashMap 存取高效,尽量较少碰撞,也就是要尽量把数据分配均匀。我们上面也讲到了过了,Hash 值的范围值-2147483648到2147483647,前后加起来大概40亿的映射空间,只要哈希函数映射得比较均匀松散,一般应用是很难出现碰撞的。...原创 2020-03-31 11:35:05 · 589 阅读 · 0 评论 -
生产者/消费者多种实现方法
1:使用wait/notify(notifyall)package com.example.demo.demo.ThreadDemo;import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.ExecutorService;import ...原创 2020-03-30 23:27:12 · 167 阅读 · 0 评论 -
java集合框架(3)手写HashMap
具体有些细节美哦与写完,以后有时间补上。package com.example.demo.utils;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Map;import java.util.Objects;/** * @description: 手写HashMap 主要功能 ...原创 2020-03-25 23:49:42 · 168 阅读 · 0 评论 -
mybatis-plus 无法更新空字符串或者null
原因:mybatis-plus对字段的验证策略导致的。这个在yml中为: #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断" field-strategy: 2解决方法:1:把字段策略改为0.并且需要确保你的PO对象修饰字段的时候,还需要加入el属性,每个属性对应数据库的jdbcType类型,这样才能成功更新空值或null。如下:/*...原创 2020-03-23 15:44:50 · 2176 阅读 · 0 评论 -
Collections.shuffle
对集合重新排序(洗牌)原创 2020-03-20 14:10:16 · 162 阅读 · 0 评论 -
java集合框架(2) 手写LinkedList
package com.example.demo.utils;import java.util.Collection;import java.util.NoSuchElementException;/** * @description: 手写实现linklist * @create: 2020-03-19 15:20 **/public class MyLinkList<...原创 2020-03-20 11:21:33 · 135 阅读 · 0 评论 -
java集合框架(1) 手写ArrayList
目标:实现add、get、remove等核心功能.package com.example.demo.utils;import java.util.Arrays;import java.util.Collection;/** * @description: 自定义ArrayList 核心代码:数组扩容机制 每次扩容1.5倍 * 底层:System.arraycopy(src,s...原创 2020-03-19 09:03:34 · 161 阅读 · 0 评论 -
mysql数据库默认时间 0000-00-00 00:00:00,导致后台报错
解决方法:数据库url后加上zeroDateTimeBehavior=convertToNull原创 2020-03-12 16:58:01 · 819 阅读 · 0 评论 -
@EnableDiscoveryClient与@EnableEurekaClient区别
相同点:都可以注解服务客户端.区别:@EnableDiscovery中Clientdiscovery service有许多种实现可以是eureka、consul、zookeeper等等。单@EnableEurekaCLient只能是eurekaspringCloud2.0以上版本已经可以不用添加任何注解,自动注册到服务中心。...原创 2020-03-10 08:50:29 · 214 阅读 · 0 评论 -
Spring 中@ConfigurationProperties注解使用方法
@ConfigurationProperties注解作用:用于加载外部配置资源,填充对应字段。然后供应容器内其他bean使用。和 @Value的区别:配置文件application-dev.yml:email: foxmail: username: qq-username pwd: qq-pwd yahoo: username: 163-usernam...原创 2020-03-09 14:44:13 · 807 阅读 · 2 评论 -
IDEA maven修改pom文件,导致jdk版本重置问题
每次在pom文件中新增依赖时,都会导致项目jdk编译版本切换。解决办法:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <arti...原创 2020-03-06 11:15:48 · 784 阅读 · 0 评论 -
Springboot整合Druid多数据源遇到的依赖循环问题
报错信息:Description:The dependencies of some of the beans in the application context form a cycle: modelEditorJsonRestResource (field private org.activiti.engine.RepositoryService com.example.de...原创 2020-02-27 16:17:59 · 2225 阅读 · 0 评论 -
springcloud zuul 报错404
配置文件:spring: application: name: service-zuulserver: port: 7005eureka: client: service-url: defaultZone: http://localhost:7000/eureka/zuul: host: connect-timeout-millis...原创 2020-01-19 16:03:11 · 640 阅读 · 0 评论 -
SpringBoot+WebSocket+Redis 实现消息推送
环境: SpringBoot 2.0.0.3 + JDK 1.8 + IDEA + Redis(spring-boot-starter-data-redis) + Nginx1.14坑点:程序以war包运行。websocket配置问题 服务器开启了Nginx代理,导致websocket 404 websocket短时间 自动关闭。 redis消息发布/订阅模式发...原创 2020-01-15 17:37:27 · 5226 阅读 · 0 评论