自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring01-框架设计原理

我们在学习一个框架的时候,不仅要知道它能做什么,而且要了解它是如何工作的。spring框架的设计原理1、提供各种不同种类支持;可以使你在后续开发中随时切换不同的实现类型,而不用修改你的代码。比如可以通过配置不同数据库配置来快捷实现切换。2、适应不同场景;灵活性并以不同的视角支持广泛的应用需求。3、强大的后向兼容;支持不同的JDK版本和第三方库,以方便维护依赖于Spring的应用程序...

2020-05-02 11:14:00 212

原创 SpringMvc之HttpMessageConverter

Strategy interface that specifies a converter that can convert from and to HTTP requests and responses.策略接口,指定可以从HTTP请求和响应进行转换的转换器。正如其说明的,对HTTP请求和响应进行数据转换。1、MappingJackson2HttpMessageConverter...

2020-11-08 16:01:57 172

原创 Springboot集成Listener

由于springboot基于servlet3.0+,内嵌tomcat容器 因此无法像之前一样通过web.xml中配置Listener,本文基于springboot2.1.1第一种import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.annotation.WebListener;@WebListenerpublic class MyF

2020-10-29 23:40:47 367 1

原创 2020-10-27

ImportBeanDefinitionRegistrar在处理@Configuration类时注册其他bean定义的类接口实现。当在bean定义级别(与@Bean方法/实例级别相反)操作时是有用的。与@Configuration和ImportSelector一起,这种类型的类可以提供给@Import注解(或者也可以从ImportSelector返回)。ImportBeanDefinitionRegistrar可以实现以下接口中的任何一个,并且它们各自的方法会在registerBeanDefi.

2020-10-27 23:50:07 205

原创 Springboot集成Filter

由于springboot基于servlet3.0+,内嵌tomcat容器 因此无法像之前一样通过web.xml中配置Filter,本文基于springboot2.1.1第一种@WebFilter(filterName = "myFilter",urlPatterns = "/*")public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) th.

2020-10-27 10:50:23 437

转载 maven到Gradle,一些对比和分享

Gradle作为一款基于Groovy语言的构建工具,已经吸引众多的ant,maven使用者转投gradle的怀抱,和Gradle相比,ant显得冗余复杂,maven显得有些死板落后,而gradle基于DSL语法,特点明显:简洁、灵活、可读性强。Gradle和maven有很多相似点,gradle充分考虑到maven库的价值,在jar包管理上完全支持mavenRepository,很多属性乍眼一看就能反应过来maven中对应的是什么标签,大大降低maven到gradle的迁移难度,并在构建方面改善了..

2020-10-07 17:28:08 192

原创 Jenkins整合SonarQube

jenkins添加的SonarQube Scanner插件:1、在线搜索插件2、离线下载https://plugins.jenkins.io/sonar/jenkins服务器下载sonarscannerhttps://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

2020-07-29 19:53:33 177

原创 WebSocket协议

https://en.wikipedia.org/wiki/WebSocket

2020-06-24 11:13:37 117

转载 常见HTTP/FTP/WebSockets状态码大全

HTTP1xx消息这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。 这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动。100 - 客户端应当继续发送请求 101 - 切换协议 102 - 处理将被继续执行2xx成功这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。200 ..

2020-06-24 10:49:08 1289

原创 Callable和Future

Runable、Callable比较相同:都是为实例可能由另一个线程执行的类设计的不同:Runable没有返回值并且不会抛出异常,Callable有返回值并且可能会抛出异常

2020-06-14 16:53:51 98

原创 ThreadPoolExecutor

ThreadPoolExecutor继承关系结构ThreadPoolExecutor初始化构造方法public ThreadPoolExecutor(int corePoolSize, #核心线程池大小,包括空闲线程。 int maximumPoolSize, #线程池最大线程数 long keepAliveTime, #超过corePoolSize的空闲线程保持存活的时长

2020-06-13 15:18:00 156

原创 Phaser

JDK1.7新特性可重用的同步屏障,其功能类似于CyclicBarrier和CountDownLatch,但支持更灵活的用法。Registration:与其他障碍不同,注册在移相器上进行同步的参与方数量可能会随时间变化。任务可以随时进行注册(使用方法register,bulkRegister或建立初始方数目的构造函数形式),也可以选择在任何到达时注销(使用ArcadeAndDeregister)。与大多数基本同步结构一样,注册和注销会只影响内部计数。它们不会建立任何进一步的内部簿记,因此任务无法查询

2020-06-06 22:42:17 215

原创 CyclicBarrier

特点:1、同步辅助类2、同类相互等待(多线程间)3、计数是加法操作一种同步辅助工具,它允许一组线程都等待对方到达公共障碍点。在涉及固定大小的线程的程序中,CyclicBarriers非常有用,这些线程必须偶尔相互等待。该屏障之所以称为循环屏障,是因为它可以在等待的线程被释放之后被重用。CyclicBarrier支持一个可选的可运行命令,该命令在每个障碍点运行一次,在团队中的最后一个线程到达之后,但在所有线程被释放之前。这个barrier操作对于在任何一方继续之前更新共享状态非常有用。

2020-06-06 17:08:17 136

转载 SpringBoot之spring.factories详述

简介Spring Boot中有一种非常解耦的扩展机制:Spring Factories。这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的。什么是SPI机制SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下java SPI机制的思想。我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、..

2020-06-04 00:03:46 889

原创 CountDownLatch闭锁

11

2020-05-31 14:56:36 180 1

原创 Maven依赖作用域

依赖关系范围用于限制依赖关系的可传递性,并且还影响用于各种构建任务的类路径。六种可用作用域:1、compile默认作用域;在项目的所有类路径中均有效,而且这些依赖项会传播到依赖整个项目。2、provided官网说明:http://maven.apache.org/guides/introduction/introduction-to-dependency-mechan...

2020-05-04 20:13:41 866

原创 SpringBoot注解集

@SpringBootApplication表示一个或多个类为配置类,并且触发自动配置和包扫描。由联合注解@Configuration、@EnableAutoConfiguration、@ComponentScan组成。

2020-05-04 10:51:20 189

原创 spring02-基础知识点

spring两大核心:IOC和AOPSpring容器:创建和管理应用组件生命周期的容器;通过xml或者java配置方式将Bean装配进容器。依赖注入(DI):通过Spring容器将Bean装配在一起的行为。DI方式:通过构造器或者属性访问方式实现。自动配置:起源于自动装配(autowiring)和组件扫描(component scanning)。借助组件扫描技术,Spring能够自...

2020-05-02 16:43:18 154

原创 Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included

filebeat解析stack信息,其中包含换行符,在logstash使用json转换时候报错:Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value解决:过滤掉acsii字符gsub{ ...

2020-04-20 13:43:52 5030

转载 Redis Cluster集群搭建

Redis Cluster集群一、redis-cluster设计Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有 节点连接。其redis-cluster架构图如下:其结构特点: 1、所有的redis...

2020-04-15 10:43:14 444

原创 spring工具类

ResourceUtils:查找文件系统中的本地资源文件,框架内部使用。#getURLResourceUtils.getURL(location)#校验logConfig是否存在ResourceUtils.getURL(logConfig).openStream().close();框架外开发可以使用org.springframework.core.io.ClassPath...

2020-04-04 14:45:27 269

原创 springboot读取logback-spring.xml

https://docs.spring.io/spring-boot/docs/1.3.8.RELEASE/reference/html/boot-features-logging.html

2020-04-04 13:56:51 1776

原创 多线程-Executor

Executor定义了执行已提交Runnable任务的对象。该接口提供了一种将任务提交与如何运行每个任务的机制(包括线程使用、调度等细节)解耦的方法。它通常使用预先创建线程而不是创建线程。例如new Thread(new(RunnableTask())).start()每次都创建新线程来执行任务。现在可以使用以下方式来执行任务:Executor executor = anEx...

2020-02-29 11:59:39 265

原创 Spring @Validated无法校验默认Groups

最近新项目是使用Hibernate Validator做表单验证,遇到有id在更新时不能为空,而在添加时需要为空的情况,所有使用了group属性来指定在什么情况下使用哪个验证规则,而在Controller方法只使用@Validated({Creation.class})来分组验证:public ApiResponse<UserDTO> createUser(@Validated(...

2020-02-14 11:23:13 1837 1

原创 DefaultMQProducer

类简述public class DefaultMQProducer extends ClientConfig implements MQProducer应用发送消息使用的基类,封装一些通用的方法方便开发者在更多场景中使用;可通过无参构造方法快速创建一个生产者。主要负责消息的发送,支持同步/异步/oneway的发送方式,这些发送方式均支持批量发送。可以通过该类提供的getter/sette...

2019-08-25 20:20:03 4677

原创 SpringMvc之RequestContextHolder

项目中除了Controller能够接收到请求对象HttpServletRequest和HttpServletResponse外,如果需要在service层使用以上请求和/或响应对象,如果直接从Controller传递过service层感觉太麻烦,而且耦合度太高;那么有什么方式可以优雅的解决该问题么? SpringMvc提供了RequestContextHolder对象!一、初识RequestCon...

2018-04-21 22:24:12 1845

原创 Mybatis异常汇总

org.apache.ibatis.reflection.ReflectionException: Error instantiating class cn.richinfo.spring.bean.MiniappUserinfo with invalid types () or values (). Cause: java.lang.NoSuchMethodException: cn.richi...

2018-04-10 18:26:20 1778

转载 Two classes have the same XML type name 排错

今天遇到一个问题,webservice发布的时候报下面的错误:&lt;strong&gt;Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptionsTwo classes have the same XML type name "{http:...

2018-02-23 16:20:31 1087

转载 Maven创建多模块项目(包括依赖版本号的统一更新)

0、多项目工程的文件夹及依赖关系bus-core-api为公共项目,app-web-ui依赖bus-core-api,app-desktop-ui依赖bus-core-api1、创建一个父Maven工程mvn archetype:generate -DgroupId=com.jsoft.test -DartifactId=testproject -Dversion=1.0-SNAPSHOT -Da...

2018-02-23 10:25:29 438

原创 escape()、encodeURI()、encodeURIComponent()区别详解

JavaScript中有三个可以对字符串编码的函数,分别是: escape(过时),encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。下面简单介绍一下它们的区别1 escape()函数定义和用法escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。语法escape(s...

2018-02-08 17:57:30 407

原创 uri请求特殊字符

平时使用ajax或者直接在url中加参数对应web开发者来说,是最频繁的事情;而已有时候发现发送到后台的参数大不如人意,部分缺失或者变化导致后台数据处理异常,so。。对应url请求的参数中,那些属于浏览器特殊的字符呢?如下:url特殊符号 在url中实际含义 转码后的十六进制表示符号含义编码++号表示空格%2B空格用+号或者编码%20/分隔目录和子目录%2F?分隔实际的 URL 和参数%3F%指定...

2018-02-08 17:15:13 475

转载 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

RPC(Remote Procedure Call Protocol)RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。 Web Service

2018-02-04 23:42:26 216

转载 RPC和WebService的区别

RPC是Remote Procedure Calling,远程过程调用的缩写。并不是“远程进程调用”——Remote Process Calling。RPC总的来说是一个Client/Server的结构,提供服务的一方称为Server,消费服务的一方称为Client。 下图是本地过程调用,所有的过程都在本地服务器上,依次调用即可。下图则是所谓的远程过程调用,需要在Client和

2018-02-04 23:40:04 3103

原创 p12与jks转换命令

keytool -importkeystore -srckeystore &lt;MY_KEYSTORE.jks&gt; -destkeystore &lt;MY_FILE.p12&gt; -srcstoretype JKS -deststoretype PKCS12 -deststorepass &lt;PASSWORD_PKCS12&gt; -srcalias &lt;ALIAS_SRC&gt...

2018-01-18 00:03:07 10269

原创 JWS-Exception

1、javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching localhost found使用localhost作为域名,SSL校验时报错,允许localhost认证,加入以下静态代码块:static { //for localhost testin

2018-01-17 22:53:42 370

原创 Tomcat配置单向https

1、生成服务器端keystore(java中keytool命令生成),生成过程中需要设置密码库和alias密码keytool -genkey -alias server_keystore -keyalg RSA -keystoreserver.keystore -validity 36502、将生成的server.keystore复制到Tomcat的根目录下的:default/server.key...

2018-01-15 10:24:20 401

原创 JAX-WS(JWS)

简述WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷。知名的XFile(新的如CXF)、Axis1、Axis2等。Web Services 发展至今已有两种形式:REST和SOAP。REST Web Services基于HTTP协议,SOAP Web Services支持多种传输协议:HTTP、SMTP、MIME等等。  本文主要介绍 SOAP web...

2018-01-14 15:34:15 862

转载 RPC原理

RPC概述RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。现在互联网应用的量级越来越大,单台计算机的能力有限,需要借助可扩展的计算机集群来完成,分布式的应用可以借助RPC来完成机器之间的调用。比如写个hello world服务类,然后本地调用下,如下所示。这些

2018-01-13 22:20:22 298

转载 SpringMvc记ResponseBody异常报错No converter found for return value of type

使用SpringMvc时,常常使用到@ResponseBody来响应Json对象,非自定义类出现问题解决:http://www.cnblogs.com/hafiz/p/5812873.html注意:如果配置了以上配置,如果还出现以上报错的话,检查自定义类是否加入了get/set方法。...

2018-01-05 15:28:38 335 1

转载 docker - 常用命令详解

本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来。根据自己的理解,总的来说分为以下几种:容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]容器操作运维 — docker [ps|inspect|top|attach|eve

2017-12-23 21:40:51 554

空空如也

空空如也

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

TA关注的人

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