
java
天天
手把青秧插满田
低头便见水中天
心地清净方为道
退步原来是向前
展开
-
Rest接口返回日期格式不听话
spring.jackson.date-format = yyyy-MM-dd HH:mm:ssspring.jackson.time-zone = GMT+8两个配置搞定,药到病除。原创 2021-10-29 10:01:27 · 388 阅读 · 0 评论 -
SpringCloudConfig 动态更新
1.refresh当配置中心的配置发生了变化,客户端可以发现更新请求http://localhost:8886/actuator/refresh是POST 还有一个点,Content-Type 需要设置application/json这只是第一步,可以让客户程序重新拉取配置中心的配置。如果想让配置在生效还需要加上一个注解!2.@RefreshScope增加了这个注解以后就可以,再请求了refresh请求以后,让更新的配置信息,在运行中的程序里生效了。(测试环境这个注解是加在了..原创 2021-01-06 16:47:17 · 419 阅读 · 0 评论 -
SpringCloudConfig 内容加密
如果你已经开始使用SpringCloudConfig,很可能会用对密码等一些敏感信息的加密。开启SpringCloudConfig的内容加密功能,很简单。只需要在 configServer 配置文件中增加一个加解密的密钥 像这样。这里需要提示大家,在正式的运行环境下,(为了安全)应该是已启动参数的方式传入的。这样只有运维人员才知道这个密钥。encrypt: key: "A12345"然后就可以调用configServer的加解密方法了。http://localhost:8881/e原创 2021-01-06 15:34:37 · 566 阅读 · 0 评论 -
SpringCloudConfig 一直报错 Cannot clone or checkout repository
配置都没有问题,git也验证了,都可以发现问题。用户名密码也正确就是,报错,无法从git中检出。也想过过是https的问题,但是github.com,用的授信的证书。但是最终还是https的原因!找了好久终于通过设置忽略https,成功了,感谢博主的分享!原文如下:https://www.cnblogs.com/TravisGrady/p/10678980.html具体的配置spring: application: name: config-server cloud原创 2021-01-06 14:53:01 · 1002 阅读 · 1 评论 -
swagger3 不能传header未解之谜
刚刚启用swagger3pom依赖只需要加上 springfox-boot-starter 相当简介 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version&g原创 2020-09-15 17:28:40 · 6021 阅读 · 0 评论 -
Spring Boot中的数据校验 Validation
先列一下常用的Validation注解注解 作用 @NotNull 值不能为空 @Null 值必须为空 @Pattern(regex=) 字符串必须匹配正则表达式 @Size(min, max) 集合或者数组元素的数量必须在min和max之间 @CreditCardNumber(ignoreNonDigitCharacters=) 字符串必须是信用卡号,按找美国的标准验证 @Email 字符串必须是Email地址 @Length(mi原创 2020-09-10 10:57:50 · 916 阅读 · 0 评论 -
java 实现进一(有余数就进一)和舍余(去掉余数)
Math中有封装好的方法ceil和floor使用的时候稍微注意一点,先看看代码 System.out.println((int) Math.ceil((double) 6 / (double) 5)); System.out.println((int) Math.floor((double) 6 / (double) 5));ceil和floor传入的参数都是double类型的,如果变量是int类型需要做类型转换。同样返回类型也是double类型的,如果不想看原创 2020-09-08 17:03:03 · 3869 阅读 · 0 评论 -
Idea springboot debug启动慢,正常启动很快。
不知道从什么时候开始,debug启动的时候就感觉有点慢,不是debug的时候速度非常快。开始没当回事,后来原来越慢,启动要5分钟。开始怀疑应用了什么spring的强大功能,只有debug的时候才会开启。看来了pom也没发现什么异常。网上搜吧,果然有同病相怜的,说是因为打了太多的断点。Idea 有提示:Method breakpoints may dramatically slo...原创 2019-10-29 09:33:07 · 4339 阅读 · 2 评论 -
1024节日快乐
怎么说,时光飞逝,从多年前的hello world开始,大概有14年了。10.24纪念一下吧,小徽章来一枚。厉兵秣马,砥砺前行!原创 2019-10-24 08:54:12 · 296 阅读 · 0 评论 -
springdata ldap 添加用户到用户组
添加用户到组public boolean addMemberToGroup(String groupName, AdUser adUser) { String groupDn = "CN=" + groupName + ",OU=IT,OU=Tech,OU=LLS,OU=OO365A"; String[] adUserDn = adUser.getDn().s...原创 2019-07-04 18:01:09 · 2716 阅读 · 1 评论 -
ad的pwdLastSet,微软时间戳转java的date
在ad里面用户的密码最后修改时间是一个long型的。用微软的话说:the number of 100 nanosecond intervals since January 1, 1601 (UTC)也就是是从1601年1月1日到当前时间的一个100纳秒数。首先这个数去掉后四位,就变成了毫秒数。但是因为跟java的开始计算时间不一样,所以还不能比较。java是从1970年1月1日00:0...原创 2019-06-24 11:26:47 · 2603 阅读 · 0 评论 -
java操作ad,创建用户设置 “用户下次登录时须更改密码”
好容易,java设置ad的密码了,费了九牛二虎只力。如何取消“用户下次登录时须更改密码”选项呢,首先要找到这个值保存在哪个字段。网上查,网上真有高人,感谢!设置pwdLastSet属性,为0首次登陆必须修改密码。...原创 2019-07-01 17:51:26 · 2677 阅读 · 0 评论 -
centos7通过yum安装JDK1.8
安装之前先检查一下系统有没有自带open-jdk命令:rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj如果没有输入信息表示没有安装。如果安装可以使用rpm-qa|grepjava|xargsrpm-e--nodeps批量卸载所有带有Java的文件这句命令的关键字是java首先检索包含jav...转载 2019-06-12 13:43:01 · 19113 阅读 · 3 评论 -
如何让redirect隐藏rul参数
这是一个秘密网上有很多关于redirect传递参数的说明,无非有两种方法,一种在url直接拼,另一种就是放session。什么springMVC传参数,那都是对这两种方式的一个封装。解决不了根本问题。我遇到的问题是,我的redirect是跨域的,我作为用户中心,提供sso。第三方系统登录需要跳转到统一的登录页面,然后登录后跳会第三方系统。而且跳转过程要么需要带回调地址,要么带一个长长的...原创 2019-06-20 18:48:18 · 3058 阅读 · 0 评论 -
maven打包不同jdk版本的包
对于MAVEN项目,我们存在将一个工程同样的代码部署到不同的环境上去的场景,且这些环境的jdk版本可能会不同,那么如何一份代码打不同的jdk版本的包呢?基于maven我们就可以很方便的做到这点。1、在项目的pom文件中加入如下配置(主要配置)<build> <plugins> <plugin> ...转载 2019-06-20 09:51:14 · 4191 阅读 · 1 评论 -
spirng-data-ldap 给ad设置和修改用户的密码需要 ldaps访问
真的被这个问题坑的好难受。spirng-data-ldap 基本操作稍微学习以下,看看demo很快就能上手。可遇到设置用户密码的时候就怎么都不成功。网上查了才发现,java修改ad域账号的密码需要用ldaps连接。连接ldaps的过程坚信无比。首先确认修改密码必须是通过ldaps来连接,开始还在这里徘徊,原来是协议的问题。需要连接ldaps,就需要服务器开启ldaps服务,...原创 2019-06-14 08:28:32 · 4404 阅读 · 0 评论 -
HATEOAS 返回结果content被隐藏
这是一个几乎很难遇到的问题。首先需要是一个已有的项目,增加HATEOAS,或者改为HATEOAS 这种规范来返回结果。特别巧合的是有一个自己的通用Result对象,而且这个对象的一个属性用来放具体返回内容的属性叫做 contrent。因为如果想返回下图这样格式的返回结果:需要返回结果对象就需要继承HATEOAS 提供的一个基类org.springframework.hateo...原创 2019-05-24 17:29:49 · 205 阅读 · 0 评论 -
JVM 编译优化 静态常量会被添加到当前类的“常量池”中,无需加载引用类(常量不加载/常量找不到/常量不更新)
标题有点绕,意思是说如果A类中定义了一个常量,且这个常量是一个“编译期常量”,那么当其他类在引用这个常量的时候。A类本身可以不被JVM加载,这个常量可以被直接引用。是不是更绕了,怎么还多出来一个“编译期常量”。即在编译期即可确定常量值。直接说重点,JVM这个编译优化会引起令人匪夷所思的BUG。让你查也查不到。还是要回到标题,不加载A类就能直接引用A类的常量。这个常量会被存在调用类的常量池中...原创 2019-01-16 13:17:06 · 1696 阅读 · 3 评论 -
HashMap的实现原理
HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需的时间与 HashMap 实例的“容量”(桶的数量)及其大小(键-值映射关系数)成...转载 2018-05-03 18:15:03 · 226 阅读 · 0 评论 -
判断一个字符串是否是合法的JSON字符串
判断一个字符串是否是合法的JSON字符串pom.xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.31...转载 2018-06-04 15:00:08 · 12714 阅读 · 0 评论 -
java Object 13
Object 有 13个方法。大多数都是native的方法。 public boolean equals(Object obj) { return (this == obj); }equals 方法,谁要再问 equals和== 有什么区别,呵呵原来默认他们就是一回事。 public String toString() { return get...原创 2018-06-11 16:09:31 · 200 阅读 · 0 评论 -
关于 java static
从最简单的开始。1.static 可以修饰 类的属性和方法。 static 修饰的属性和方法属于类,与实例无关。同样的要注意加载顺序,静态变量是在类加载的时候初始化的。非静态属性是在创建对象时,初始化的。2.可以定义static静态块 静态块的执行顺序是顺序执行,包括静态变量初始化和静态块,也就是说如果有今天块又有静态属性。是按照代码顺序执行的。3.静态内部类 static 不能...原创 2018-05-30 09:16:02 · 154 阅读 · 0 评论 -
JDK1.8 ArrayList 扩容详解
arraylist这个数据结构比较简单,总体来说,arraylist 底层结构是数组,他的很多方法都是从数组上面演变而来的,下面分析下arraylist的扩容机制,每次在add()一个元素时,arraylist都需要对这个list的容量进行一个判断。如果容量够,直接添加,否则需要进行扩容。在1.8 arraylist这个类中,扩容调用的是grow()方法,通过grow()方法中调用的Arrays....转载 2018-06-13 13:33:45 · 885 阅读 · 0 评论 -
String 源码
String 类 的hashCode方法s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] /** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * <blockquo...原创 2018-06-13 14:20:48 · 322 阅读 · 0 评论 -
weblogic oauth 401 错误
oauth服务。原本在tomcat下运行正常。改用weblogic后无端的包401错误。官方解决方案:https://docs.oracle.com/cd/E12840_01/wls/docs103/security/thin_client.html#understanding_basic_atnUnderstanding BASIC Authentication with Unsecured R...原创 2018-06-14 16:34:23 · 1912 阅读 · 0 评论 -
一看你就懂,超详细java中的ClassLoader详解
写的太好了 转载的 原文:https://blog.csdn.net/briblue/article/details/54973413ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序...转载 2018-06-15 16:44:09 · 227 阅读 · 0 评论 -
Mybatis 源码学习(六) Transaction事务模块
看到这里,有点没有看明白mybatis的两种事务类型。网上搜了一下相关文章。MyBatis源码解析(三)——Transaction事务模块别人的这篇写的太好,直接转过来吧。原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6634151.html1、回顾 之前介绍了Environment环境类,这其实是一个单例类,在MyBatis运行开启后...转载 2018-07-02 10:13:20 · 624 阅读 · 0 评论 -
Linux 下 java 修改文件权限
Java 修改文件权限这个应该是老生常谈的功能,但是最近发现以前写的代码有一点点安全隐患,所以把代码改成NIO的方式,下面会介绍2种修改文件,文件夹权限的方法。使用File类 这个方式是以前最常见的方式,但是这个方式有点缺点在LINUX或者UNIX系统下,需要显示的指定权限为440,770等就显得不是那么好用了。File dirFile = new File(dirPath);dirFile.s...转载 2018-06-27 17:05:12 · 9204 阅读 · 0 评论 -
Mybatis 源码学习(五) DataSource
作为一个ORM框架对jdbc的封装是基础和前提。假设要自己写一个ORM框架,首先也是从jdbc入手。或者说从创建数据库链接开始。跟我想的不太一样,获取数据库链接没有在jdbc包里,而是在datasource包里。javax.sql.DataSource。...原创 2018-06-28 14:19:51 · 545 阅读 · 0 评论 -
Mybatis 配置报错:元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?.....
在配置Mybatis的时候明明配置项没有错,就会莫名其妙的报错:元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseI...原创 2018-07-04 14:53:47 · 1691 阅读 · 2 评论 -
Java的SPI机制浅析与简单示例
一、SPI机制 这里先说下SPI的一个概念,SPI英文为Service Provider Interface单从字面可以理解为Service提供者接口,正如从SPI的名字去理解SPI就是Service提供者接口;我对SPI的定义:提供给服务提供厂商与扩展框架功能的开发者使用的接口。 在我们日常开发的时候都是对问题进行抽象成Api然后就提供各种Api的实现,这些Ap...转载 2018-08-10 16:50:04 · 178 阅读 · 0 评论 -
maven 下载 工程依赖的所有jar包到本地
一个很特别需求,用了maven 又想把包都下载下来。mvn dependency:copy-dependencies一个命令帮你搞定。太好用了,感觉振华!原创 2018-11-02 13:56:39 · 9104 阅读 · 0 评论 -
用递归实现字符串反转
简单又常见被这简洁的写法惊艳到了!public static String reverse(String originStr) { if(originStr == null || originStr.length() <= 1) return originStr; return reverse(originStr.substring(...原创 2018-05-02 10:13:25 · 3284 阅读 · 0 评论