自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot过滤器Filter的使用

问题:springboot项目,过滤器Filter功能,jar包测试及发布一切正常。发布war包后,过滤器失效,autowired和value取不到值。我们在配置spring时会用到spring的listener,它会读取application.xml里的配置对spring context进行初始化;项目启动时,先初始化listener,因此配置在applicationContext.xml里的bean会被初始化和注入;然后再来就filter的初始化,再接着才到我们的dispathServlet的初始化

2021-03-30 13:47:48 330

原创 yml文件映射读取

配置文件格式: display-mode: brief-view: AAA: default: listmode,custommode AA: listmode,custommode@Component@ConfigurationProperties("display-mode") //前缀@PropertySource(value = "classpath:/config/gb/KN...

2021-02-18 15:52:29 226 1

原创 xml解析工具类

import org.apache.commons.lang3.StringUtils;import org.dom4j.*;import org.dom4j.io.SAXReader;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.io.ClassPathResource;import java.io.ByteArrayInputStream;import ja..

2021-02-18 10:16:51 364

原创 cookie 获取不到设定值

检查后台cookie值 读取不到的处理步骤和方法1,检查是否给cookie赋值。前端还是后台2,检查path是否设定好范围。cookie 要设定path的属性来确定使用范围3,检查cookie值是否包含特殊字符。无特殊字符可获取到,有特殊字符无法获取Cookie [] cookies = request.getCookies(); 获取的cookie 不能包含特殊字符String cookie = request.getHeader("cookie"),获取所有的cookie值,可根.

2021-02-08 11:05:53 1518

原创 httpclient 远程异步调用工具类

import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.c..

2021-01-28 11:41:33 339

原创 URL中文字符处理工具类

/** * 处理url里的中文 * @param url * @return */private String dealURLChinaStr(String url){ if (StringUtils.isEmpty(url)) { return url; } url = url.trim(); String[] urlParts = url.split("\\?"); if(null == urlParts || urlParts.len.

2021-01-28 11:38:54 198 1

原创 HashMap,HashTable,TreeMap,ConcurrentHashMap 的区别

HashMap TreeMap HashTable集合 HashMap HashTable TreeTable 实现 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable public class Hashtable<K,V> extends D.

2020-05-13 09:42:14 238

原创 ArrayList 和 LinkList 的区别--源码解析

基于jdk1.8的总结 linklist arraylist 源码展示及说明 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable Deque:支持两端元素插入和移除的线性集合 AbstractSequent..

2020-05-09 15:55:10 205

原创 String,StringBuffer,StringBuilder 的使用及拓展

一、String的源码简扒,如下图:String是 final 类,String的基本数据类型是 char,数据实现方式是数组(数据在内存中连续排放),且数组为 final 类型(不可修改)。 结合圈中的英文,String 创建出来的对象不可修改。顺便一提,定义char变量的时候用单引号‘’,且字符长度为1,如 char a= '';二、String 的使用示例补充:== ...

2020-05-08 17:06:04 252

原创 int 和 Integer 的区别

int是基本数据类型。不需要实例化。直接存储数据值,数据存储在常量池。默认为0。int a = 100;integer是int的包装类型。要实例化。是对象的引用,要重新分派存储位置,有地址和值两个属性。默认为null。Integer b = new Integer(100);1,integer不同创建对象的引用是不同的,但值是相同的。new Integer(1) == new Int...

2020-05-07 21:43:55 1516

原创 23种设计模式及设计原则简略总结

计模式的原则:顺口溜: 开里合,接迪依单--开离合,接第一单开闭原则:拓展开放,修改关闭。模块化开发里氏替换:子类尽量不要重写父类,保证子类代码可读性,复用性。依赖倒置:面向接口编程,不面向实现编程。提高代码灵活性,降低模块耦合。单一职责:责任功能单一化。提高代码可读性,可维护性,降低复杂度和风险。接口隔离:接口要更小更具体,避免臃肿和复杂。提高内聚性,降低耦合度。分类专业化。迪米特...

2020-03-16 13:49:15 205

原创 REDIS -- 常用操作命令

redis常用命令redis默认端口为6379,默认库为0,范围为0-15包括:String字符类型,hash散列类型,list列表类型,set集合类型,zset有序集合类型视图工具:RedisDesktopManager官网教程:https://www.redis.net.cn/tutorial/3501.html一、keys基础操作命令1,匹配符? 匹配一个字符*...

2020-01-13 17:57:59 323

原创 编程思想 -- 第21章 -- 并发

并发 并行编程可以让程序执行速度得到极大提高,或者为设计某些类型的程序提供更易用的模型,或者两者皆有。了解并发可以使你意识到明显正确的程序可能会展示出不正确的行为。理解并发编程,其难度与理解面向对象编程差不多。 一、并发的多面性 用并发解决的问题大体上可以分为速度和设计可管理型两种。 1,更快的执行: 并发是用于多处理器编程的基本工具,并发通常是提高运行在单...

2019-12-24 10:35:39 253

原创 编程思想 -- 第20章 -- 注解

注解 注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据。 注解在一定程度上把元数据与源代码文件结合在一起,而不是保存在外部文档中这一大的趋势之下所催生的。同时,注解也是对来自像C#之类的其他语言对Java造成的语言特性塔里所作出的一种回应。 注解可以提供用来完整描述程序所需要的信息,而这些信息是无法用Java...

2019-12-13 17:47:15 220

原创 编程思想 -- 第19章 -- 枚举类型

枚举类型 关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能。 一、基本enum特性 调用enum的values()方法,可以遍历enum实例。values()方法返回enum实例的数组,而且该数组中的元素严格保持其在enum中声明时的顺序,因此你可以在循环中使用values()返回的数组。 ...

2019-12-12 18:02:01 160

原创 编程思想 -- 第18章 -- JAVA I/O系统

Java I/O系统创建一个好的 输入/输出(I/O) 系统是一项艰难的任务。不仅存在各种I/O源端和想要与之通信的接收端(文件,控制台,网络链接等),而且还需要以多种不同的方式与它们进行通信(顺序,随机存取,缓冲,二进制,按字符,按行,按字等)。Java类库的设计者通过创建大量的类解决这个难题。一、File类 File这个名字既能代表一个特定的文件名称,又能代表一个目录下一组文...

2019-12-11 13:42:06 239

原创 JDK -- centos7中jdk安装

通过xshell将jdk的tar包发送到虚拟机指定文件夹下执行如下命令tar -xzvf jdk_1.8.tar加入环境变量参数vim /etc/profile验证 java -version本机测试ko

2019-12-03 14:36:01 117

原创 MAVEN -- 对maven项目的版本进行统一升级和修改

问题背景:本地项目的版本为 1.0-SNAPSHOT , 需要更改升级为 1.1RELEASE 版本。由于子模块众多,不方便逐个修改,需要进行统一更改。1,配置mvn环境变量,并检验mvn -version2,在项目的根目录的pom文件,加入如下插件<build> <plugins> <plugin>...

2019-12-03 11:07:08 1182

原创 编程思想 -- 第17章 -- 容器深入研究

容器深入研究一、完整的容器分类法 以下是集合类库更完备的图,包括抽象类和遗留构件(不包括Queue的实现): 虚线表示abstract类。 二、填充容器 fill()方法和addAll()方法。 一种Generator:事实上所有的Collection子类型都有一个接收另一个Collection对象的构造器,用所接收的Collectio...

2019-12-02 17:28:45 147

原创 编程思想 -- 第16章 -- 数组

数组对数组的基本看法是你可以创建并组装它们,通过使用整形索引值访问它们的元素,并且它们的尺寸不能改变。一、数组为什么特殊 数组与其它种类的容器区别有三:效率,类型和保存基本数据类型的能力。数组可以持有基本类型,而泛型之前的容器则不能。数组比容器仅存的优点是效率。 数组是一种效率最高的存储和随机访问对象引用序列的方式。数组是一个简单的线性序列,使得元素访问非常快速。代价是数组...

2019-11-28 18:06:18 107

原创 编程思想 -- 第15章 -- 泛型

泛型一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的编码,这种刻板的限制对代码的束缚就会很大。在面向对象编程语言中,多态算是一种泛化机制。拘泥于单继承体系,会使程序受限太多。有时候使用接口,对程序的约束还是太强。泛型实现了参数化类型的概念,使代码可以应用于多种类型。最初的目的是希望类或方法能够具备最广泛的表达能力,通过解耦类或方法与所使用...

2019-11-27 17:39:13 166

原创 编程思想 -- 第14章 -- 类型信息

类型信息运行时类型信息使得你可以在程序运行时发现和使用类型信息。Java在运行时识别对象和类的信息主要有两种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型;另一种是反射机制,它允许我们在运行时发现和使用类的信息。一、为什么需要RTTI 在Java中所有的类型转换都是在运行时进行正确性检查的,这是RTTI最基本的使用形式,RTTI名字的含义:在运行时,识别一个对...

2019-11-26 17:55:16 89

原创 编程思想 -- 第13章 -- 字符串

字符串字符串操作是计算机程序设计中最常见的行为一、不可变String String对象是不可变的。String类中每一个看起来会次改String值的方法,实际上都是创建一个全新的String对象,以包含修改后的字符串内容,而最初的String对象丝毫未动二、重载 “+” 与StringBuilder String对象是不可变的,你可以给一个String对象加任意多的别名...

2019-11-26 09:41:55 138

原创 编程思想 -- 第12章 -- 通过异常处理错误

通过异常处理错误java的基本理念是“结构不佳的代码不能运行”java异常处理的目的在于通过使用少于目前数量的代码来简化大型,可靠的程序的生成,并通过这种方式可以使你更加自信:你的应用没有未处理的错误。异常的相关知识学起来并非艰涩难懂,并且它属于那种可以使你的项目收益明显,立竿见影的特性之一。一、概念 对于构造大型健壮可维护的程序而言,不去检查错误的错误处理模式情形已经成为了主...

2019-11-25 16:45:00 411

原创 编程思想 -- 第11章 -- 持有对象

持有对象 通常程序总是根据运行时才知道的某些条件去创建新对象。在此之前,你不会知道所需对象的数量,甚至不知道确切的类型。 在java中,容器类是可以显著增强编程能力的基本工具 一、泛型和类型安全的容器 @SuppressWarnings注解及其参数表示有关“不受检查的异常”的警告信息应该被一直通过使用泛型,可以在编译器防止将错误类型的对象放置到容器中。...

2019-11-21 09:15:00 173

原创 Annotation-specified bean name 。。。 conflicts with existing, non-compatible bean definition of same

Annotation-specified bean name your-filename-one for bean class ******filename-one******** conflicts with existing, non-compatible bean definition of same name and class ******filename-two********启...

2019-11-20 14:15:26 3750

原创 编程思想 -- 第10章 -- 内部类

内部类可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性。在最初,内部类看起来就像是一种代码隐藏机制:将类置于其他类的内部。但是,内部类远不止如此,它了解外围类,并能与之通信;而且你用内部类写出的代码更加优雅而清晰。一、创建内部类 创建内部类方式就如同你想的一样--把类的定义...

2019-11-19 15:28:23 96

原创 编程思想 -- 第9章 -- 接口

接口接口和内部类为我们提供了一种将接口和实现分离的更加结构化的方法。一、抽象类和抽象方法 抽象类是普通类和接口之间的一种中庸之道。尽管在构建具有某些未实现方法的类时,你的第一想法可能是创建接口,但是抽象类仍旧是用于此目的的一种重要而必须的工具。因为你不可能总是使用纯接口。 java提供抽象方法机制,仅有声明没有方法体。用abstract修饰。包含抽象方法的类叫抽象类。如果一...

2019-11-15 17:31:45 131

原创 编程思想 -- 第8章 -- 多态

多态在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征。(也叫动态绑定,后期绑定或运行时绑定)多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序--满足项目初建或后续扩展。“封装”通过合并特征和行为来创建新的数据类型。“实现隐藏”通过将细节私有化把接口和实现分离开来。多态的作用是消除类型之间的耦合关...

2019-11-14 10:08:51 120

原创 编程思想 -- 第7章 -- 复用类

复用类复用代码是java众多引人注目的功能之一,但要想成为极具革命性的语言,仅仅能够赋值代码并对之加以改变是不够的,它还必须能够做更多的事情。一、组合语法 只需将对象一用置于新类中 -- 组合技术的使用。对于非基本类型的对象,必须将其引用置于新的类中。 编译器并不是简单的为每一个引用都创建默认对象,因为在很多情况下会增加不必要的负担。如果想初始化这些引用,可以在代码中的下列...

2019-11-12 14:18:54 116

原创 编程思想 -- 第6章 -- 访问权限控制

访问权限控制访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。重构即重写代码,以使得它更可读,更易理解,并因此而更具可维护性。访问权限控制的等级,从大到小是:public,protected,包访问权限(没有关键词)和private。java用关键字package将构建捆绑到一个内聚的类库单元中。一、包:库单元 包内包含一组类,他们在单一的名字空间下被组织在一起。 ...

2019-11-11 15:42:15 196

原创 编程思想 -- 第5章 -- 初始化与清理

初始化与清理随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一。初始化和清理是涉及安全的两个问题。一、用构造器确保初始化。 java中通过提供构造器,类的设计者可确保每个对象都会得到初始化。创建对象时,如果类具有构造器,java会在用户操作对象之前自动调用相应的构造器,从而保证初始化的进行。 构造器的名称必须与类名完全相同。不接受任何参数的构造器叫...

2019-11-07 16:05:47 147

原创 编程思想 -- 第4章 -- 控制执行流程

控制执行流程java中涉及的关键字包括if-else,while,do-while,for,return,break,及switch。java不支持goto语句。一、true和false 所有条件语句都利用表达式的真假来决定执行路径。布尔表达式必须产生一个布尔结果。 如果在布尔测试中使用一个非布尔值,比如if(a),那首先必须用一个条件表达式将其转换为布尔值,如if(a!=...

2019-11-05 20:38:54 156

原创 编程思想 -- 第3章 -- 操作符

操作符 java是建立在C++的基础上,然后做了改进和简化。 一、更简单的打印语句 普通:java打印语句:System.out.println(" hello world ! this is my first println "); 简单:引入import static net.mindview.util.Print.* 打印语句 :println(" sim...

2019-11-05 13:35:14 129

原创 编程思想 -- 第1章 -- 对象导论

对象导论面向对象程序设计 Object-oriented Programming oop一、抽象过程 所有编程语言都提供抽象机制,解决问题的复杂性直接取决于抽象的质量和类型。 面向对象的五个基本特征: 1,万事万物接对象 2,程序是对象的集合 3,每个对象都有自己的由其他对象所构成的存储 4,每个对象都拥有其类...

2019-11-04 16:36:10 145

原创 编程思想 -- 第2章 -- 一切都是对象

一切都是对象一、引用操作对象。 简化理解:遥控器可以操纵电视,但遥控器是个独立的存在,未必一定要与电视机关联 代码示例:String str; 二、必须由你创建所有对象 2.1存储位置: 1,寄存器,处理器内部。速度最快 2,堆栈,RAM(内存),指针向上移动,释放内存,向下移动,分配新内存。速度次之 3,堆,RA...

2019-10-31 17:48:27 115

原创 VM虚拟机管理软件无法打开

自2019年10月1日后,自己的vm14pro无法打开,启动出现检查 更新的提示,于是删除了更新补丁重启后就好了。但是几天后补丁又不知道什么情况下安装了,再次卸载,并关闭window10 的更新,重启后正常。一,卸载更新补丁二,关闭windows10更新,此电脑右键属性--打开管理附言: 据多方查询,升级vm软件和重装最新的vm软件都有 打不开原来...

2019-10-23 09:58:24 1057

原创 LINUX -- CentOS 7虚拟机下设置固定IP

问题描述:虚拟的IP发生变化,导致虚拟机内的有关IP设定的开发软件无法正常使用。问题原因:虚拟机默认NAT模式下IP是随机动态分配的,无法确保虚拟机的IP为稳定的值。解决目标:设置虚拟机的IP为固定值,不受主机的网络变换影响,虚拟机能够保持与主机的通讯且能上网。解决方案:NAT模式设定+固定IP设定的模式。配置环境:主机为笔记本Win10家庭版,虚拟机为VM14 Pro 中文版,虚...

2019-10-18 18:28:17 150

原创 LINUX -- redis安装详解

一,下载redis的tar包,上传后解压二,安装编译器(redis由c语言编写)三,进入解压目录并编译编译时发生异常执行重新编译命令四,安装redis,新设定安装路径五,尝试启动redis启动成功并查看进程六,加入后台启动方式,复制解压包的 redis.conf 文件到安装路径的启动目录下,并更改设置daemoniz...

2019-10-10 15:14:24 136

原创 LINUX -- jdk版本卸载与安装

操作如下:1,检查虚拟机jdk使用版本 java -version检查虚拟机jdk自带的版本 rpm -qa | grep jdk2,移除不需要的版本 rpm -e --nodeps jdk版本完整名称3,检验版本4,安装新版本使用xshell将tar包拷贝到指定文件夹,并解压文件 tar -xzvf jdkt...

2019-10-08 14:48:54 172

空空如也

空空如也

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

TA关注的人

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