
java
文章平均质量分 50
Javaの神
这个作者很懒,什么都没留下…
展开
-
自定义注解实现日志打印时屏蔽特定字段不打印
前端传参和后端使用公钥密钥进行加密以后传输,后端业务执行的时候再解密;要求某接口的请求参数有一个字段不要在日志中打印。偷懒这里就不定义三种了准备这一个用到底了。自定义注解在日志打印的时候屏蔽。.........原创 2022-07-31 19:01:29 · 1981 阅读 · 0 评论 -
【Jenkins笔记】入门,自由空间;持续集成企业微信;allure报告,持续集成电子邮件通知;构建定时任务
然后就可以执行部署了。原创 2022-07-28 22:16:30 · 529 阅读 · 0 评论 -
【笔记】Java手动加载properties文件
该方法也是从类路径下开始加载,但是只能加载.properties为扩展名的文件,并且不需要指定文件的扩展名。我们所想要读取的是在src下的bean.properties文件,确切的说是加载类路径下的bean.properties.为了方便对比,我们在项目的更路径下创建了bean1.properties文件,用来加以对比类路径和项目根路径。该种方式,在我们的IDE中会正常编译运行,但是当我们的项目部署到web服务器中时会丢失路径,因为项目部署到tomcat的webapps下后是没有src路径的。...原创 2022-07-25 19:26:32 · 439 阅读 · 0 评论 -
关于Java双大括号{{}}
刚开始我看到这种Java双括弧写法s也是把它奉若圣经,对它只一知半解,昨天在用XStream把一个对象生成XML文件时,其中有一个List属性,我就借用了这种双括符法来初始化元素,结果生成的XML文件走了样,原因是XStream的Converter能处理ArrayList,但无法很好的处理生成的ArrayList的匿名子类。其实就是匿名类啊,会创建出一个HashMap的子类来,匿名类中一个{}括起来的初始化块,里面自然可放置初始化代码。因为在初始化集合时确实方便不少。......原创 2022-07-18 15:16:04 · 3554 阅读 · 0 评论 -
【笔记】并发执行,多线程注意事项,volatile关键字AtomicInteger类
https://blog.youkuaiyun.com/xueping_wu/article/details/124541419即在和,主体代码执行之前都对锁进行判断第一次加锁是确认加锁是否被允许,如果允许则加锁加锁后再次判断,可能会有别的线程在我们执行加锁前修改了数据例子:...原创 2022-07-13 11:44:28 · 169 阅读 · 0 评论 -
获取一个接口的所有实现类的两种方法
方法1:使用Spring自带的方法Spring作为一个容器,管理着一个项目中所有经过配置的Java类(xml配置文件或Annotation方式)。如果某个接口的所有实现类均被Spring托管了,那么通过Spring就可以很简单的返回这些实现类。方法2使用JDK自带的ServiceLoader实现ServiceLoader是JDK自带的一个类加载器,位于java.util包当中,作为 A simple service-provider loading facility.使用方法:具体使用:1.在M原创 2022-07-09 15:03:17 · 4835 阅读 · 0 评论 -
使用Jedis查询数据,使用接口默认方法完成缓存命中以及未命中的操作
缓存尝试接口使用原创 2022-07-08 19:04:30 · 472 阅读 · 0 评论 -
Java 使用谷歌翻译免费api,翻译文档
直接上代码.就是个简单的http请求原创 2022-07-06 19:08:42 · 1140 阅读 · 2 评论 -
函数式接口,方法引用,Lambda实现的List集合排序小工具
1.在Java8中引入了一个函数式接口Consumer的对象,该对象可以把方法作为参数进行传递。关于lambda的教程使用效果可以根据需求自行拓展函数接口,需要注意和,大多数时候更换返回值类型就可以了;参数类型以及返回值类型影响这个函数方法在调用的时候需要传入的参数,以及响应值...原创 2022-07-01 21:00:18 · 161 阅读 · 0 评论 -
记录一次Mongotemplate的And和Or的各种套
需求是查询用户的行程安排信息查询用户过去七天到未来的行程安排,也就是说数据必须满足如下条件1.见面时间 >= 当前时间-7天2.用户id=发送者id,且发送人确认情况=0或者=null或者用户id=接收者,且发送人确认情况=0或者=null以上两个表示用户没有确认或者否认这个记录,所以进行展示3.行程必须是被同意过的4.行程必须是未见面的5.指定用户mysql大概的写法用mongoTemplate的写法以及都相当于开启了一个 当里面的或者满足时这个为,则命中,嵌套的情况下亦是如此,整原创 2022-06-22 15:49:12 · 924 阅读 · 0 评论 -
从每月数据中按每周截取,每次只截取当前月份的数据,不显示上月
省原创 2022-06-16 22:40:19 · 181 阅读 · 1 评论 -
虹软人脸识别Api拆分临时笔记
package com.doria.realFace.core;import com.arcsoft.face.*;import com.arcsoft.face.enums.DetectMode;import com.arcsoft.face.enums.DetectModel;import com.arcsoft.face.enums.DetectOrient;import com.arcsoft.face.enums.ErrorInfo;import com.arcsoft.face.t原创 2022-05-24 01:36:27 · 247 阅读 · 0 评论 -
记录一次nginx重定向以后POST请求变为GET请求的解决
今天测试twilio的回调地址,想在本地看到具体的回调内容,于时就将内网一台测试服务器的流量转发到了我的电脑上;现象:但是我用postman先行测试请求的时候爆出请求方法异常,奇怪了我明明是post为什么变成了get,于是我去看了一下nginx的日志,如下可以看到,经过重定向以后,变成了get请求;又看了一下nginx的配置文件原来是这里的问题,首先是因为重定向使用的状态码不正确,重定向使用的状态码如下有缓存的301和308,浏览器在接收一次重定向以后,会缓存重定向的地址,以后请求会直接访原创 2022-05-07 18:13:37 · 3600 阅读 · 0 评论 -
通过【自定义注解+AOP+枚举】实现自动缓存 + 日志打印以及上报
五一闲在家里没事干,,整点活;前言大概功能就是在需要缓存返回值的方法上加上注解,当方法被调用的时候自动查询缓存,命中缓存则自动返回缓存,未命中缓存则执行原本逻辑,并在执行后自动缓存新的数据概述大概就是通过自定义缓存Cache,然后aop切面扫描所有使用这个注解的方法,并通过缓存枚举CacheEnum进行管理key值以及过期时间,再通过另一个注解CacheSuffix标注需要拼接到key值之后作为特征参数的方法参数;后缀拼接部分,因为pjp获取到的方法参数和方法参数的注解[]数组索引位置是对应的,原创 2022-05-04 00:00:27 · 1091 阅读 · 1 评论 -
关于sysynchronized 和 synchronized (this)
当使用了synchronized 于方法之上,或者使用synchorionized (his)时,类中的所有同步代码以及同步代码块都将被加锁,同时只有一个线程能够访问类中方法;执行完后又由其他cpu竞争锁示例public static void main(String[] args) { new Thread(psvm::say).start(); new Thread(psvm::say).start(); new Thread(psvm::show).start();原创 2022-05-03 17:55:20 · 229 阅读 · 0 评论 -
List的remove方法
今天想用LinkedList做一个消息推送的队列,用到了remove方法,就很好奇,为啥remove以后上面取出的引用依然有值;大概是这种 public T get() { T last = queue.getLast(); queue.removeLast(); // 这里本身remove方法就返回被删除的元素,所以可以简化 return last; }就好奇看了一下为啥remove以后last变量的引用地址并没有失效,于是看了下是原创 2022-05-01 03:00:18 · 693 阅读 · 0 评论 -
Springboot 整合 knife4j openApi文档
依赖这里我们直接使用springboot内部集成的版本 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> </dependency>添加配置类@Configuration@EnableSwagger2@EnableKnife4jpublic.原创 2022-04-26 17:09:26 · 1090 阅读 · 0 评论 -
Springboot不常用注解-_-
@ConditionalOnMissingBean@ConditionalOnProperty原创 2022-04-24 20:52:07 · 1052 阅读 · 0 评论 -
通过反射,设置所有为null的字段为空字符串或者对象
可以通过mvc解决,试着用反射做了一下public class ChangeNullController { public static void main(String[] args) { Object o = new ChangeNullController().getUsers(); long start = System.nanoTime(); Object replace = replace(o, new HashMap<>()原创 2022-04-24 13:10:35 · 1132 阅读 · 0 评论 -
记录一次数据库被黑,mysql,redis,mongodb各种修改密码修改端口添加白名单访问
前言今天下午5点的时候正在开心的写BUG,突然请求不通了,,奇怪。。。navicate链接数据库提示10061报错嘶。。。。百度百度。。。百度告诉我要改密码。。。?心想不妙。。。连了一会连不上,就尝试重启服务器了重启完能用了,,,心里毛毛的,,回想一下好像好久没有备份数据库了。。就顺手备份了一波当前服务和另一个服务。。。然后。。。7点正准备下班呢。前端@我。。一个服务挂了。。。我擦?我看了一下说是表不存在。。奇怪。。我一点开卧槽。。就剩一张表了README好巧不巧。刚才那个mysql卡住的原创 2022-04-22 22:49:17 · 1173 阅读 · 0 评论 -
关于阿里云OSS资源STS访问控制
目前还在看什么是STSAssumeRoleRAM角色和STS Token常见问题RAM Policy常见示例使用TST临时访问凭证访问OSS做一下记录,稍后来补原创 2022-04-21 20:55:34 · 5880 阅读 · 0 评论 -
琢磨琢磨方法引用以及lambda--白话Lambda和方法引用
方法引用:就是直接传递一个类的指定方法,进行复用,而不是方法的返回值;比如如下:方法要求传入一个Consumer<? super Engin action> void要求传入一个无返回值的方法;同时实现接口时要求参数泛型必须为Engine那我们传入的方法就必须是参数类型为Engine的方法再如图:参数需要一个方法:方法必须有返回值,任意泛型,,参数也是任意泛型自己来一个新...原创 2022-04-21 13:04:37 · 131 阅读 · 0 评论 -
SpringBoot统一异常处理Dubbo异常,只捕获RuntimeException和Excpetion的处理方法笔记
场景在Springboot中使用全局统一处理异常进行捕获,平时能够正常使用,但是发现异常从dubbo调用返回以后,却进了RuntimeException的处理方法,如果没有就会直接进Exception的处理方法;于时在报错中找到了一个ExceptionFilter源码如下:# 反正大概职能就是对特定的异常进行放行,然后其他全部包装成RuntimeException# 为了便于阅读我删掉了日志类和构造@Activate(group = Constants.PROVIDER)public cl.原创 2022-04-12 20:25:12 · 5568 阅读 · 2 评论 -
springboot整合dubbo以后将zookeeper注册中心更换为nacos
依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.4.2</version></dependency><!--dubbo框架--><dependency> <原创 2022-04-12 14:31:39 · 2085 阅读 · 0 评论 -
通过自定义注解标记类中属性的功能
##需求:接收一个消息类,类的属性中有一个不确定属性名的属性表示消息类型,类的属性中有一个不确定属性名的属性表示消息内容,通过注解对属性进行标记;注解@Target(ElementType.FIELD) // 设置为使用在字段上@Retention(RetentionPolicy.RUNTIME) // 运行时起效@Documented public @interface MyMessage {}@Target(ElementType.FIELD)@Retention(Retenti原创 2022-04-11 11:27:14 · 233 阅读 · 0 评论 -
记录一个使用Hutool使用163邮箱发送邮件遇到的坑
项目使用了邮件验证码的功能,本地一切正常,放到云服务就发不出邮件;查看日志发现:Could not connect to SMTP host: smtp.163.com, port: 25询问网友,得知云服务商频闭了25端口的邮件功能;凎!解决办法:方法1:启用25端口方法2:使用465端口网易邮件的服务以及端口:这里使用的是hutool的邮件工具,所以他默认只能使用SMTP协议,我这里就给他修改为465端口记得千万要启用ssl模式。否则报错Could not connect t原创 2022-04-01 13:07:47 · 8887 阅读 · 1 评论 -
Linux通过Maven打包部署项目,git密钥,mven安装,换源,跳过测试,笔记
目录Mavenmaven的安装修改数据源为阿里源git 的安装Linux生成git密钥拉取项目并部署拉取项目Mavenmaven的安装1.首先要下载安装包mvn官网地址: http://maven.apache.org/download.cgi2.上传到linux任意你想安装的目录,这里建议/usr/local3.移动到压缩包所在目录cd /usr/local4.解压文件tar -zxvf apache-maven-3.8.5-bin.tar.gz5.配置环境变量nano /e原创 2022-04-01 11:46:35 · 4062 阅读 · 0 评论 -
Spring参数校验注解,截取默认响应消息,响应自己定义的消息
// 方法参数无效异常 @ExceptionHandler(value = MethodArgumentNotValidException.class) public void methodArgumentNotValidException(MethodArgumentNotValidException e) throws IOException { response.setContentType("application/json;charset=utf-8");原创 2022-03-31 22:17:41 · 555 阅读 · 0 评论 -
springboot自定义响应码访问对应uri,以及取消对404的默认响应
@Configurationpublic class WebSeverErrorConfig { @Bean public ConfigurableServletWebServerFactory webServerFactory(){ TomcatServletWebServerFactory factory =new TomcatServletWebServerFactory(); ErrorPage errorPage400=new ErrorPage.原创 2022-03-31 20:15:38 · 822 阅读 · 0 评论 -
多线程与线程池的demo笔记
目录创建线程继承Thread实现Ruannble接口实现Callable接口,配合FutureTask创建线程池无限长度线程池,不够就创建新的,够就复用有限长度线程池,不够时队列等候有限长度,支持定时任务,以及延迟任务的线程池延迟执行延迟执行+定时循环一个单线程执行的线程池创建线程继承Thread@Slf4jpublic class ZExtendsCopyThread extends Thread{ private String file; private String targ原创 2022-03-23 20:29:20 · 2658 阅读 · 0 评论 -
从url中获取网路资源并向客户端写入,文件下载,HTTP
URL nurl = new URL(section.getSectionFileUrl()); HttpURLConnection conn = (HttpURLConnection) nurl.openConnection(); conn.setConnectTimeout(5000); conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT;原创 2022-03-21 11:36:32 · 425 阅读 · 0 评论 -
Mybaits中当使用<时被识别成标签导致报错
今天进行CRUD的时候有一句sql需要查询小于当前时间的课程;于时出现了因为mybatis把<识别成了标签的开始所以报错了。解决办法方法1:将左右两边对换使用>这个不会被识别成标签开始start_time < NOW()····NOW() > start_time方法2:<![CDATA[ ]]>start_time < NOW()····start_time <![CDATA[<]]> NOW()方法3:使用转原创 2022-03-08 12:00:46 · 1098 阅读 · 0 评论 -
通过自定义注解+ConstraintValidator完成Pojo参数枚举校验,
依赖定义一个注解用于字段创建一个校验类用以校验的bean以及使用枚举校验方法枚举测试结果参考文档系统执行业务逻辑之前,会对输入数据进行校验,检测数据是否有效合法的。所以我们可能会写大量的if else等判断逻辑,特别是在不同方法出现相同的数据时,校验的逻辑代码会反复出现,导致代码冗余,阅读性和可维护性极差。hibernate-validator就提供了这套标准的实现,我们在用Springboot开发web应用时,会引入spring-boot-starter-web依赖,它默认会引入spring-bo.原创 2022-03-03 14:55:50 · 925 阅读 · 0 评论 -
发现个没见过的东西。记录一下。监听器ApplicationEvent。顺便复习一波自定义线程池
在网上CV代码的时候突然发现粘进来的代码多了个小耳机,这是神马处于好奇我就百度了一下,琢磨了一下,参考了一个戏精博主的文章,写了个demo,这里记录一下他是啥首先这玩意呢,就是一个监听器,他可以监听指定类型的事件事件类继承ApplicationEvent,在里面自定义荷载,由事件发布器ApplicationEventPublisher 调用方法.publishEvent(userActionEvent);发布,一但发布马上就会被@EventListener()定义好的监听器监听到,从而执行方法内的原创 2022-01-29 18:51:42 · 1409 阅读 · 0 评论 -
Spring的动态代理-【JDK动态代理以及CGLIB动态代理】
目录Spring的两种动态代理实现【jdk模式】方法接口方法实现动态代理类调用总结:又从同学那里听到一个好东西,于时着手看看是啥。。。Spring的两种动态代理实现【jdk模式】方法接口/** * 用户管理接口 */public interface IUserManager { void addUser(User user); void delUser(Long userId);}方法实现/** * 管理类的实现 */public class UserManag.原创 2022-01-12 12:24:50 · 353 阅读 · 0 评论 -
Java 7.0特性之 MethodHandle
简介懒得写网上粘一个:目录简介懒得写网上粘一个:有参数有返回值无参数有返回值有参数无返回值无参数无返回值示例对应的测试类后续是摘抄的文档介绍简介MethodTypeLookupinvokeJDK6之前我们会使用java反射来实现动态方法调用,多数框架用反射的比较多,例如mybatis、spring等。在JDK7中,新增了java.lang.invoke.MethodHandle(方法句柄),称之为“现代化反射”。其实反射和java.lang.invoke.MethodHandle都是间接调用方法的途径,原创 2022-01-07 18:52:26 · 243 阅读 · 0 评论 -
通过反射修改对象属性
public static void main(String[] args) throws IllegalAccessException, NoSuchFieldException, InstantiationException { // 需要删除的字段 String defFiled = "mobile"; // 初始化对象 User user = new User(1L, "38172792", "kslaskdjl"); ...原创 2022-01-05 19:50:02 · 374 阅读 · 0 评论 -
Java的一些反射操作
/** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.subst原创 2022-01-04 20:41:11 · 181 阅读 · 0 评论 -
实现一个二维矩阵类
二维数组刚好对应现实中的二维空间;取值起来刚好也很接近现实;type[x][y]/** * 矩阵类 */@Data@AllArgsConstructorpublic class Matrix { private Integer row;// 行 private Integer col;// 列 private Integer[][] data; public Matrix() { this.data = new Integer[][]{}原创 2021-12-30 11:57:11 · 283 阅读 · 0 评论 -
关于使用SSL证书
SSL证书的使用证书的申请使用tomcat中的使用Springboot内置tomcat的使用证书的申请这里以阿里云为例阿里云盾根据系统下载合适的就可以了使用·tomcat中的使用首先进入tomcat根目录,然后创建文件夹cert将刚才下载的两个文件导入进去接着我们移动到配置文件tomcat安装目录下执行 nano ./conf/server.xml方式一:找到配置端口号的<Connector/>标签,将默认配置注销掉修改配置为<Connector p原创 2021-11-25 18:27:19 · 1574 阅读 · 0 评论