自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 RedisTemplate的Pipelined方式怎么使用?

redisTemplate使用pipeline

2022-09-02 14:00:17 723 1

原创 SpringBoot启动流程中,两种特殊的Bean,ApplicationRunner和CommandLineRunner

SpringBoot项目的入口是SpringApplication的run方法,在初始化完成了Spring上下文容器并启动完成内置Server以后,会调用Runner,具体源码如下:public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context =

2021-04-23 16:04:39 636

原创 Oauth2框架权威规范

由SpringSecurity官方文档指引到的此在线文档。Oauth2规范地址SpringSecurity Oauth2

2021-04-16 11:42:48 184

原创 Spring环境下处理事件,标准的观察者模式

有时候我们希望做了一件事,触发其他的一些行为动作,这时候可以通过代码强耦合的方式顺序编码,比如在吃饭之后需要遛弯儿:public class Pserson { public void eat() { }}这种编码可以实现需求,但是当需求频繁变更的时候可能不太适合,因为需要频繁修改person源码,此时可以引入观察者模式,...

2021-04-05 21:56:24 201

原创 SpringSecurity-密码存储方式

密码存储的历史:在一开始,密码都是以明文进行存储的,用户设置的密码是123,那么落库的密码就是123。然而,有一些恶意用户利用诸如sql注入或者其他一些手段,获取到了数据库中存储的明文密码,不仅在当前系统的安全泄露,有些用户还会在所有系统都用一个密码(譬如我,为了好记),那造成的危害更大了。开发人员开始利用单向散列的方式存储密码,例如SHA256。由于是单向散列的,所以不会反向计算出密码原文。(注意,单向散列并不是一种加密算法,真正的加密算法,是可以通过相应算法生成密文,又可以通过相应算法反身生成原文,

2021-03-17 22:19:53 801

原创 gradle全局配置阿里云仓库下载依赖

Gradle是一个基于JVM的构建工具,支持从maven远程仓库下载依赖。一.创建配置文件创建一个存储依赖的文件夹,并创建一个名为init.gradle的文件,文件中为以下内容:allprojects{ repositories { def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public' def ALIYUN_JCENTER_URL = 'http://m

2020-12-05 14:10:24 1022

转载 获取请求来源的IP地址

博文原文/** * 获取请求者的IP * 获取用户真实IP地址,不使用request.getRemoteAddr()的原因是有可能用户使用了代理软件方式避免真实IP地址, * 可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值 * @return ip */public static String getRealIp(HttpServletRequest request) { String ip = request.getHeader(

2020-12-05 11:00:34 1498

原创 Object类的克隆(拷贝)方法,以及深拷贝、浅拷贝

clone()

2020-12-03 14:49:51 1090

原创 github、码云等配置ssh访问,添加个人SSH公钥

cd ~ ,家目录下,有一个隐藏文件夹,.ssh,在里边若不存在,执行 ssh-keygen -t rsa -C 邮箱 创建

2020-12-01 14:24:04 658

原创 js利用reduce对数组中的元素或数组中对象某一属性值求和

1.语法array.reduce(function(total, currentValue, currentIndex, arr), initialValue)reduce最多可以接收两个参数,第一个参数为必须,是一个函数,此函数实现累加器的作用。第二个参数非必须,是计算的初始值。如果数组为空,则不会调用reduce中传入的函数。作为reduce入参的累加器函数,它最多可以有四个入参:1.total: 计算后的和2.currentValu:当前项3.currentIndex:当前项在数组中

2020-12-01 11:44:07 8916 1

原创 SpringMVC返回json数据时,Long字段丢失精度

实体类的id,java为Long,数据库为Bigint,从数据库查询返回时是正确的,但是将实体响应的时候19位的Long类型id精度丢失。解决方案一:字段加注解,返回时将此字段序列化为string类型@Datapublic class User { @TableId(value = "id",type = IdType.ASSIGN_ID) @JsonSerialize(using = ToStringSerializer.class) private Long id;

2020-11-05 14:33:05 846

原创 js获取地址栏中参数的现成可用方法

参考来源function getQueryVariable(variable){ var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] =

2020-09-01 17:18:33 145

转载 各类文件的响应类型

原文contentType.put(".load" , "text/html"); contentType.put(".123" , "application/vnd.lotus-1-2-3"); contentType.put(".3ds" , "image/x-3ds"); contentType.put(".3g2" , "video/3gpp"); contentType.put(".3ga" , "video/3gpp");

2020-08-15 10:01:06 1489

原创 vue-cli对格式要求严格导致报错的解决方式

在config文件夹中,找到index.js文件,找到useEslint,设置为false

2020-08-01 15:19:28 498

原创 将jar包安装到本地maven库

mvn install:install-file -Dfile=F:\jiefu\lib\helloword.jar -DgroupId=com.tanjingyu -DartifactId=helloword -Dversion=2.0 -Dpackaging=jar解释说明:mvn install:install-file 打包命令-Dfile=F:\jiefu\lib\helloword.jar jar包位置-DgroupId=com.tanjingyu 坐

2020-08-01 15:16:13 133

原创 给idea设置自己喜欢的背景

代码主题下载地址:http://www.riaway.com/设置搜索:set background image右键它,添加一个快捷键,随便的就行,之后我们用快捷键打开设置背景图的设置页

2020-07-18 17:54:13 273

原创 为什么我们自定义的对象重写了equals方法,同时也必须重写hashCode方法?

这是因为散列的数据结构(HashMap,HashSet等)用到了hashCode和equals方法。当我们自定义了一个类,例如Student,这个类有一个String类型属性name。如果我们认为name相同的对象就是同一个人,那么我们就应该重写equals方法class Student{ private String name; @Override public boolean equals(Object o) { if (this == o) return

2020-05-22 01:01:32 216

原创 HashMap中数组的大小为什么一定是2^n?

注:提取的源码片段为jdk8对HashMap有了解的人都知道,HashMap默认维护的数组大小是1 << 4,也就是2^4,也就是16。当我们创建一个HashMap对象的时候,如果我们指定了容量大小,但是却不是2^n,那底层也会帮我们进行处理,源码:/*** 有参构造,参数为自定义容量大小*/public HashMap(int initialCapacity) { // 调用了重载方法,用了默认的负载因子 this(initialCapacity, DEFAU

2020-05-21 16:27:39 1517

原创 mybatis读取xml失败

查询语句的xml写在了java文件路径中,如:maven在编译文件时,不会将放在java路径中的静态文件进行编译:解决办法:pom文件中添加配置: <!--项目打包时会将java目录中的*.xml文件也进行打包--> <build> <resources> <resource> <directory>src/main/java</directory&g

2020-05-17 16:20:34 601

原创 读取XML文件报错:前言中不允许有内容

此问题为编码格式问题,可以用Notepad++打开:编码带BOM,将编码改为UTF-8并保存:

2020-05-14 10:49:11 785

原创 VUE的created()生命周期方法和watch监听的使用

在使用过程中,两个路由地址用到了同一个页面,需要根据某条件判断是哪个路由过来的,做出不同的处理。例如如下页面:添加讲师的路由在左侧显示了出来,但是修改讲师是隐藏的路由。添加讲师和修改讲师用到了同一个页面,但是由不同的路由地址进行跳转,修改需要回显讲师数据信息,所以需要加以判断。在设置路由时,可以在修改的路由上做如下设置:{ path: 'updateTeacher/:id', name: '修改讲师', component: () => i

2020-05-12 22:30:10 3262

原创 Idea彩色日志插件grep-console

插件市场中搜索安装grep-console,控制台日志就是彩色的了

2020-05-10 12:35:25 1467

原创 跨域、同源策略、CORS以及如何跨域请求资源

注:本文文字描述过于生活、过于接地气、过于大白话,没有文邹邹。一、什么是跨域?要想知道什么是跨域,那就得知道域的结构:域 = 协议 + 主机地址 + 端口号看几个对比网站:http://baidu.com和https://baidu.com是不同的域,因为请求协议不同;http://www.baidu.com和http://zzz.baidu.com是不同的域,因为主机地址不同;ht...

2020-04-28 22:18:24 591

原创 List调用添加方法时报错:java.lang.UnsupportedOperationException

抽取出我们要看的代码:Arrays 工具类public class Arrays { public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } private static class ArrayList<E> exte...

2020-04-26 11:03:55 285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除