java
怎么可能-怎么可能
为什么能执行?
为什么不能执行?
展开
-
网关响应信息拦截加密后,返回前端怎么办
1.问题项目已经上线运行了一段时间了,突然某些接口的出参需要加密(对称加密); 项目是分布式的,有很多服务(微服务项目);2.解决根据上述问题,我设计了解决方案(该方案只能解决得到的报文是加密的!!!):由于很多服务,所以拦截的地方放在网关最合适; 由于是成品项目,已经运行了很长时间,所以只能对部分响应接口做加密处理,根据header里放约定值(怎么知道那些接口需要加密呢,????咱们让前端告诉【也可以后台写死对应的接口】),虽然前端告诉,设计不怎么安全;2.1 总所周知,在原创 2021-03-22 18:40:47 · 618 阅读 · 1 评论 -
SpringKafka动态指定@KafkaListener的topics和groupId
1.@KafkaListener@KafkaListener是kafka的消费者,topics是其主题名,groupId是组名; 属性值一般只支持常量,再集群的情况下,topics、groupId如果不是动态的,那集群环境中只有一台能消费同主题上的任务;2.动态指定topics、groupId两个属性@KafkaListener中有一个beanRef属性,专门获取spring容器中的bean; beanRef:此注释中的SpEL表达式中使用的伪bean名称,用于引用定义此侦听器的当前.原创 2020-10-15 16:30:11 · 14934 阅读 · 1 评论 -
Java基于redis的延迟任务,适用于微服务、集群项目
一、原理流程图二、原理解析2.1 producer(生产者)1.生产者为延迟执行器的客户端,发送或取消延迟任务;2.在spring容器中注入DelayTaskProducer bean,初始化需要3个参数ApplicationContext、redis工具类、自定义任务key(注意:key在不同微服务中一定不能重复);3.初始化完成,即可注入使用;话外:如果是单个服务,ApplicationContext和自定义任务key,这两个参数就没有必要了,可以直接利用映射初始化用户的.原创 2020-08-31 13:41:19 · 345 阅读 · 0 评论 -
自定义异常,以assert的形式抛出异常
一、类关联图二、说明1.通过ResponseEnum中定义的异常枚举信息,判断抛出异常;2.判断方法为公共方法,写在自定义的assert里,代码判断时调用;3.利用自定义的枚举常量直接可以引用assert里的公共方法,有异常即会抛出自己指定的异常;三、源码讲解3.1异常类3.1.1 BaseException类package com.geo.source.exception.customassert.exception;import com.geo.s...原创 2020-05-08 17:44:48 · 6847 阅读 · 3 评论 -
spring的Aop代理的两种实现
一、java动态代理实现InvocationHandler接口,来创建自己的调用处理器; 为Proxy指定ClassLoader对象和一组interface来创建动态代理; 通过反射获得动态代理的构造函数,唯一参数类型为是调用处理器的接口类型; 构造函数创建代理类实例,构造时调用处理器对象作为参数被传入;实例:public class ProxyTest { publ...原创 2020-04-10 13:57:05 · 458 阅读 · 0 评论 -
java数据导出Excel的CSV格式、自定义字段导出字段
一、流程图二.导出流程2.1导出csv byte数据流工具类package com.geo.source.csv;import com.geo.source.csv.annotation.CsvCell;import com.geo.source.csv.annotation.CsvRow;import com.geo.source.csv.dto.CsvFileInfo...原创 2020-03-23 16:05:17 · 3438 阅读 · 1 评论 -
java.util.ConcurrentModificationException: null
问题1.实例Exception in thread "main" java.util.ConcurrentModificationException at java.util.HashMap.forEach(HashMap.java:1292) at com.geo.source.testmain.publictest.MapTest.m5(MapTest.java:21) a...原创 2019-10-16 14:18:58 · 1111 阅读 · 0 评论 -
java 时间时区类
时间时区类LocalDate:2014-05-14TLocalTime:15:33:05.941ZoneId:+08:00[Asia/Shanghai]LocalDateTime:2014-05-14T 15:33:05.941ZonedDateTime:2014-05-14T 15:33:05.941 +08:00[Asia/Shanghai]各个类所代表的时间部分...原创 2019-04-21 14:40:37 · 420 阅读 · 0 评论 -
java递归
递归的写法不同,效率不同public class RecursionMain { private static long time = 0L; public static void main(String[] args) { time = System.nanoTime(); System.out.println(RecursionTest.recursion1(...原创 2019-04-21 19:41:03 · 90 阅读 · 1 评论 -
java8 Optional类方法概览
作用Optional:1、是单个对象的流,可以向stream操作集合一样操作单个对象;2、可以取代null(具体细节待完善...);函数Optional类的方法 方法名 描述 empty 返回一个空的Optional实例; filter 如果只存在并且满足给定的条件,就返回该值的optional对象,否则返回一个空的optional对象 ; fla...原创 2019-04-18 14:41:50 · 143 阅读 · 0 评论 -
java调整线程池的大小
来源Brian Goetz和同事们为线程池的大小的优化提出的建议!线程池大小公式:线程数 = 处理器核数 * 期望cpu的利用率 * (1 +等待时间/计算时间)注意:处理器核数= Runtime.getRuntime().availableProcessors();期望cpu的利用率 应该介于0到1之间建议(等待时间/计算时间...原创 2019-04-19 10:35:05 · 587 阅读 · 0 评论 -
java Duration类和Period类的共享相似方法
区别duration主要用于 秒 和 纳秒 衡量时间长短,针对两个LocalTime、两个LocalDateTime、两个Instant,它们之间不能混用,会抛出DateTimeException异常;Period对年、月、日进行衡量时间长短,针对LocalDate;方法说明:LocalDate、LocalTime、LocalDateTime、Instant都实现了Tempo...原创 2019-04-20 13:55:33 · 283 阅读 · 0 评论 -
java LocalDate\LocalTime\LocalDateTime\Instant的通用方法
说明LocalDate、LocalTime、LocalDateTime、Instant都实现了Temporal接口LocalDate : yyyy-MM-ddLocalTime:HH:mm:ssLocalDateTime :LocalDate和LocalTime的结合体(2019-04-20T15:22:48.451)Instant : 时间戳(2019-04-20T07...原创 2019-04-20 15:37:39 · 274 阅读 · 0 评论 -
cmd 编译 Java 找不到主类
编译文件报错搜百度:说环境变量配置错误看了看都是好的费了半天时间终于找到原因从上图看出什么猫腻没(不带后缀)原创 2019-05-11 14:35:42 · 317 阅读 · 0 评论 -
论try、catch、finally返回值的执行顺序
上代码public class TryTest { public static void main(String... args) { System.out.println(m1()); } static int m1() { int x; try { x = 1; return x; } catch (Exception e) { x = 2;...原创 2019-06-03 21:27:05 · 114 阅读 · 0 评论 -
雪花(SnowFlake)算法学习
上代码class CustomSnowFlake { /** * 开始时间 */ private static final long startTimestamp = 1561077901000L; /** 最后一次时间戳 */ private static long lastTimestamp = -1L; // 序列号 private static...原创 2019-06-21 10:05:22 · 463 阅读 · 0 评论 -
数组访问表达式运行时计算
数组表达式例:A[(A=B)[3]]A:数组表达式;B:数组表达式;(A=B)[3]:索引表达式;数组计算过程首先,数组引用表达式计算。如果该计算猝然结束,那么数组表达式也会以相同的方式结束,索引表达式不会计算; 否则,索引表达式被计算。如果该计算猝然结束,那么数组访问也会以相同的方式猝然结束; 如果,数组引用表达式的值为null,那么会抛出一个NullPoint...原创 2019-07-03 17:22:42 · 306 阅读 · 0 评论 -
使用ElasticsearchRepository报ClassCastException: java.lang.Long cannot be cast to java.lang.String
异常信息java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String at org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository.stringIdRepresentatio...原创 2019-09-06 11:05:06 · 4326 阅读 · 0 评论 -
continue失效问题
该代码块的结果是什么private static void m20() { final List<String> list = Arrays.asList("1", "2", "3"); for (String s : list) { Map<String, String> params = null; ...原创 2019-09-20 22:51:17 · 2025 阅读 · 0 评论 -
java TemporalAdjuster类中的工厂方法
作用将日期调整到下个周日、下个工作日,或者本月的最后一天实例public static void main(String[] args) { final LocalDate localDate = LocalDate.of(2019, 4, 20); final LocalDate date1 = localDate.with(TemporalAdjusters...原创 2019-04-20 18:30:41 · 164 阅读 · 0 评论 -
java接口使用默认方法,解决冲突的规则
问题随着默认方法的加入,有可能出现一个类继承了多个方法而他们使用的却是同样的函数签名,怎么判断类会选择哪一个函数执行?可根据以下3点:1、类中的方法优先级最高,类和父类中声明的方法优先级高于任何声明为默认方法的优先级;2、类中无任何声明,子接口的优先级更高,高于任何声明为默认方法的优先级;3、以上不满足,继承了多接口的类必须通过显示覆盖和调用期望的方法,显式的选择哪种默认方法...原创 2019-04-16 13:01:32 · 615 阅读 · 3 评论 -
Previous operation has not finished; run 'cleanup' if it was interrupted SVN更新异常
问题更新过程中终止,或有打开文件都会更新不成功,SVN的bug;error:Previous operation has not finished; run 'cleanup' if it was interruptedPlease execute the 'Cleanup' command.解决办法如果遇到上述问题先试试一下办法,如果不行再去删SVN的数据库(怎么删百度上有...原创 2018-10-29 17:19:55 · 1711 阅读 · 1 评论 -
MongoDB 操作符详解
比较操作符## 等于 : {key : value}## 小于 : {key : {$lt : value}}## 小于或等于 : {key : {$lte : value}}## 大于 : {key : {$gt : value}}## 大于或等于 : {key : {$gte : value}}## 不等于 : {key : {$ne : value}}## 存...转载 2018-10-25 18:08:12 · 452 阅读 · 0 评论 -
mvn的Spring Boot项目创建
创建spring boot项目:Eclipse Version: Neon.3 Release (4.6.3)1、 走spring boot1.1 空白处右键或者Ctrl+N进入new页面,如下图,找到spring boot 1.2、选择spring boot 下的spring starter project ----> next 选择项目的配置,安装了mav...原创 2018-09-20 10:27:40 · 252 阅读 · 0 评论 -
mybatis详解
今天早上无意间发现了一个网站,感觉不错分享一下;网址:http://www.mybatis.org/mybatis-3/zh/getting-started.html转载 2018-05-04 09:18:11 · 121 阅读 · 0 评论 -
Spring boot的开启与自动关闭(主要讲‘关闭’)
遇过的坑给你们分享一下,请略过删除线部分。首先:mvn依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency&g...原创 2018-09-04 15:38:20 · 7037 阅读 · 5 评论 -
Head First的MVC之歌(英文版)
MVC之歌:歌名:模型,视图,控制器《ModelViewController》词曲:James Dempsey https://pan.baidu.com/s/1PXDVDqRQVpKcZ1bQwCLNLQ 请大佬 翻译并唱 出来!!!原创 2018-08-24 20:38:16 · 313 阅读 · 0 评论 -
解决:Java compiler level does not match the version of the installed Java project facet.
不说废话,直入主题;1.首先项目-->properties-->java compiler2.其次-->project facets3.再后window-->preferences-->java-->compiler4.项目--> alt+F5 重新编译一下;5.以上更新后还会报异常;修改maven的配置文件...原创 2018-08-09 14:46:03 · 271 阅读 · 0 评论 -
eclipse plugin 导出插件包
来源:https://www.cnblogs.com/Leo_wl/p/3289288.html#_label2eclipse插件打包原来要建项目才能用eclipse的install new software更新,比较麻烦看下文一步一步理解阅读目录eclipse plugin 导出插件包第一种:直接导出jar包,然后copy到eclipse主目录的plugins第二种:生成eclipse可以用in...转载 2018-05-25 13:55:49 · 3227 阅读 · 0 评论 -
从eclipse上传到GitHub上
查看:http://www.cnblogs.com/haoabcd2010/p/9455336.html唯一不赞同的是创建mvn本地库:最好不要在eclipse工作区中创建自己选择一个路径,专门作为本地库,如下 ...转载 2018-11-29 20:56:08 · 131 阅读 · 0 评论 -
mongodb 格式化时间
1、$dateFromString (aggregation){ $dateFromString: { dateString: <dateStringExpression>, // 要转换的时间字符串 format: <formatStringExpression>, // 转换的格式,‘%Y-%m-%dT%H:%M:%S.%LZ’ ...原创 2018-12-03 17:59:55 · 17355 阅读 · 0 评论 -
java8求质数的收集器
质数收集器原理是:对小于自然数的平方根的所有质数求余/** * 质数收集器 * * @author YanZhen * @since 2019-04-11 09:59 */public class PrimeNumbersCollector implements Collector<Integer, Map<Boolean, List<Integer>...原创 2019-04-11 12:10:45 · 144 阅读 · 0 评论 -
了解Collectors类的静态工厂方法
假如 menuStream 是一个菜单流menuStream = menu.stream();Dish对象中的元素:Calories:菜中的热量Vegetarian:是否素食Type:菜的类型,鱼肉,猪肉,其他name:名Collectors类的静态工厂方法 工厂方法 返回类型 应用 示例 toList List<T> ...原创 2019-04-10 15:55:04 · 142 阅读 · 0 评论 -
jackson配置响应时间格式、时区(查询时间与当地时间不一致)
配置文件:application.ymlspring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8输出格式:yyyy-MM-dd HH:mm:ssGMT+8:就是格林威治标准时间的英文缩写(Greenwich Mean Time格林尼治标准时间),是世界标准时间. gmt+8 是格林威治时...原创 2019-04-10 12:44:11 · 5309 阅读 · 0 评论 -
mybatis写入时间时与本地时间不对应(mysql表中)
问题:2019-04-10 11:45:40 写入mysql表2019-04-09 22:45:40 相差13个小时解决:是由于时区导致的,不需要修改数据库中的配置及文件,在连接后面添加时区即可 &serverTimezone=Asia/Shanghaijdbc:mysql://localhost:3326/nd_tms?useSSL=false&am...原创 2019-04-10 12:28:57 · 1737 阅读 · 1 评论 -
IDEA快速从mysql表结构生成实体类及mapper,安装插件ecmybatis(免费的哦)
目录从1.1.3看起,略过开发过程中遇到的问题!一、需要点前奏1.1 个人开发的需要你输入url1.1.1 settings>Plugins>Marketplace>点击小齿轮1.1.2输入url:经过改良不需要输入url,输入会得到1.0的版本不是最新的1.1.3 在搜索框输入 ecmybatis 然后 Enter,搜到之后点击安装,再重启;...原创 2019-03-04 10:52:10 · 3372 阅读 · 19 评论 -
不用注入,最基本的方法测试mybatis(IDEA)
mybatis配置mysql.propertiesdriver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3326/sqlname?useUnicode=true&characterEncoding=utf-8username=rootpassword=rootmybatis.xml<?xml versi...原创 2019-02-20 14:55:30 · 926 阅读 · 0 评论 -
Linux配置JDK11,Centos7系统
1、jdk11说明jdk11与之前版本不同,安装好的文件夹里没有jre文件,环境变量配置更简单了;2、Linux(Centos7)配置JDK112.1、首先下载,不多说https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html2.2、上传到Centos7系统自己指定安...原创 2019-01-27 10:40:20 · 5436 阅读 · 3 评论 -
idea项目打jar包或war包
1、idea的打包方式很简单,内部继承,以maven项目为例打开pom.xml文件,添加<packaging>war</packaging> 或 <packaging>jar</packaging>注意:打jar包或者war包取决于这个值<!--添加对tomcat的支持--> <depend...原创 2019-01-25 15:28:19 · 2061 阅读 · 0 评论 -
mybatis的#{}和${}
#与$相同点:替换传入参数 例: select * from user where id = #{params}; select * from user where id = ${params}; 传入123入参 select * from user where id = "123"; select * from user...原创 2018-05-18 17:38:13 · 143 阅读 · 0 评论