自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 安装第三方库出现 Python version 2.7 required, which was not found in the registry

安装第三方库出现 Python version 2.7 required, which was not found in the registry建立一个文件 register.py 内容如下. 然后执行该脚本.import sys from _winreg import * # tweak as necessary version = sys.version[:3...

2018-04-19 18:27:03 287

翻译 Spring 执行任务和任务计划

1.TaskExecutor类型  该接口有一个execute(Runnable task)方法,他根据线程池的语义和配置接受执行任务SimpleAsyncTaskExecutor 此实现不重用任何线程,他会为每个调用都启用一个新线程,但是他支持一个并发限制,他将阻止任何超过该限制的调用,直到一个插槽被释放为止。ConcurrentTaskExecutor 此实现是 java.util.concu...

2018-04-19 10:58:26 1000

原创 Spring 事务管理 4种隔离级别

数据库事务的隔离级别有如下几种public enum Isolation { DEFAULT(-1), READ_UNCOMMITTED(1), READ_COMMITTED(2), REPEATABLE_READ(4), SERIALIZABLE(8); private final int value; private Isolatio...

2018-04-16 18:00:34 1378

原创 Spring 事务管理 事务的传播级别

例子:对于默认的传播级别 REQUIRED 的测试首先对于 REQUIRED 的解释如下: 默认事务类型,如果没有,就新建一个事务;如果有,就加入当前事务,也就是大家都使用同一个事务模型,只要有一个发生了异常,那么整个事务都会回滚。其中对于发生异常导致事务回滚需要注重理解,否则对于REQUIRES_NEW 就会认为某些行为与预先的不一样。下面针对 REQUIRES_NEW  的测试如下:@Serv...

2018-04-16 17:35:13 3279

原创 Spring mvc 之 AbstractHttpMessageConverter 自定义Http消息转化器

场景:获取网络数据时,发现如下错误{ "timestamp": "2018-04-13T05:43:23.256+0000", "status": 500, "error": "Internal Server Error", "exception": "feign.codec.DecodeException", "message"

2018-04-13 14:20:12 6982

翻译 Spring mvc 之WebMvcConfigurerAdapter 对mvc的自定义

@Configuration//启用配置@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter { /** * 注册自定义格式化程序和转换器 * 详细见Formatter * * @param registry */ @Override ...

2018-04-13 13:41:06 547

翻译 Spring Http流 (服务端推送技术)

*/@RestControllerpublic class TestController { /** * HTTP 流 用于在Http相应中同时推送多个事件 * 该对象可以被用于发送多个对象, * 通常我们使用到的@ResponseBody只能返回一个对象 * 访问http://127.0.0.1:8886/get6 客户端等待, ...

2018-04-12 11:32:05 1799

翻译 Spring mvc 异步调用 Callable DeferredResult

Spring MVC 3.2开始引入了基于Servlet3的异步请求处理,相比以前,控制器方法已经不一定需要一个值,而是可以直接返回一个Callable对象,并通过Spring MVC所管理的线程来产生返回值,与此同时,Servlet容器的主线程则可以退出并释放其资源,同时也允许容器去处理其它请求。通过一个TaskExecutor,Spring MVC可以在另外的线程中调用Callable。当Ca...

2018-04-12 11:01:33 1252

原创 Spring @ControllerAdvice与@RestControllerAdvice注解

@ControllerAdvice是组件注解,他使得其实现类能够被classpath扫描自动发现,如果应用是通过MVC命令空间或MVC Java编程方式配置,那么该特性默认是自动开启的。注解@ControllerAdvice的类可以拥有@ExceptionHandler, @InitBinder或 @ModelAttribute注解的方法,并且这些方法会被应用到控制器类层次的所有@RequestM...

2018-04-12 10:00:50 30066

翻译 Spring 3 对JSR-303/JSR-349的验证支持

Sring 3 完全支持JSR-303 Bean的验证API,当编程使用验证时,Spring的DataBinder可以验证对象并绑定他们,最后Spring MVC现在支持在@COntroller中输入验证内容。例子:1.编写VO对象并设置验证规则package com.test.entity.vo;import lombok.Data;import javax.validation.cons...

2018-04-11 16:17:00 1282

翻译 Spring Formatter<T> 对Spring MVC接受的参数格式化

Formatter和Converter一样,也是将一种类型转换成另一种类型。但是,Formatter的源类型必须是一个String。在使用时,必须编写一个实现org.springframework.format.Formatter接口的java类。这个接口的声明如下注意点就是:此Formatter的应用场景多在Spring MVC中接受String的值将其转化为相应的Java对象public in...

2018-04-11 13:50:27 467

翻译 Spring 3提供的 core.convert 类型转换

Spring 3介绍的core.convert包提供了对通用类型的转换,它定义了SPI来实现类型转换逻辑,以及在运行时执行类型转换的API,在Spring系统中,此系统可用用作PropertyEditors的替代方法,他将外部bean属性字符串转换为所需的属性类型,公共API可以在任何需要类型转换的应用程序中使用。a.converter的使用  例子:https://blog.csdn.net/f...

2018-04-10 19:15:23 461

翻译 Spring PropertyEditor自定义属性编辑器

Spring 使用PropertyEditors的接口来实现对象和字符串之间的转换,比如将 2007-14-09转化为日期类型等,可以通过注册自定义编辑器来实现此功能Spring使用了属性编辑的例子1.在bean上设置属性是使用PropertyEditors完成的,当遇到java.lang.String作为XML文件中声明某个bean的属性值时,Spring将使用ClassEditor尝试将参数解...

2018-04-10 15:48:02 2547

翻译 Spring BeanWrapper

BeanWrapper 提供了设置和获取属性值(批量或单独)获取属性描述符以及查询属性以确定他们是可读还是可写的功能。1.定义测试bean@Datapublic class Company { private String name; private Person person;}@Datapublic class Person { private String...

2018-04-10 13:39:12 108

翻译 Spring 数据校验

1.定义需要校验的类@Datapublic class Person { private String name; private int age;}2.编写校验器@Componentpublic class PersonValidator implements Validator { @Override public boolean supports(...

2018-04-10 12:47:30 161

翻译 Spring 事件通知

Spring事件通知1.编写自定义的事件载体对象/** * @Author:qmfang * @Description: 继承自事件对象,表明将其作为一个事件通知对象 * @Date:Created in 10:35 2018/4/8 * @Modified By: */@Datapublic class BlackListEvent extends ApplicationEvent...

2018-04-08 11:20:44 567

翻译 Spring Ioc 基于Java的容器配置

@Bean和@Configuration注解Spring中基于Java配置的核心内容是@Configuration注解的类和@Bean注解的方法@Bean注解用于表名方法的实例化,配置和初始化都是由Spring Ioc容器管理的新对象,就像在XML配置的元素一样,开发者可以在任意的Spring @Component中使用@Bean注解方法,但是大多数情况下@Bean是配合@Configuratio...

2018-04-07 14:36:10 203

翻译 spring Ioc 对象注入 注解

@Service 用于注解服务@Component 用于注解元数据@Controller    用来注解controller@Repository 用来注解持久层 同时其能自动转换异常元注解:一种可用于别的注解之上的注解,例如@Service注解是使用@Component元注解的 @Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNT...

2018-04-04 19:32:13 236

翻译 Spring Ioc 容器扩展点3 使用FactoryBean自定义初始化逻辑

为自己工厂的对象实现FactoryBean接口FactoryBean接口就是Spring IOC容器实例化逻辑的可插拔点,如果你的初始化代码非常复杂,那么相对于潜在的大量详细的XML而言,最好是使用Java语言来表达,你可以创建自定义的FactoryBean,在该类中编写复杂的初始化代码,然后将自定义的FactoryBean插入到容器中,FactoryBean接口提供下面三个方法:1.Object...

2018-03-30 14:22:51 517

翻译 Spring Ioc 容器扩展点2 BeanFactoryPostProcessor自定义元数据配置

这个接口的语义与BeanPostProcessor类似,但有一处不同,BeanFactoryPostProcessor操作bean的元数据配置,也就是说,Spring IOC容器允许BeanFactoryPostProcessor来读取元数据配置并在容器实例化任何bean(除了BeanFactoryPostProcessor)之前修改他。开发者可以配置多个BeanFactoryPostProces...

2018-03-30 12:23:15 334

翻译 Spring Ioc 容器扩展点1. BeanPostProcessor

BeanPostProcessor定义了回调方法,通过实现这个方法,开发者可以提供自定义(或者重写容器默认)的实例化逻辑依赖分析逻辑等等,如果想在Spring容器完成实例化,配置和初始化bean之后实例化某些自定义逻辑,那么开发者可以插入一个或多个BeanPostProcessor实现,并且可以通过实现设置order属性来控制这些实现的执行顺序(前提是顺带实现Ordered接口才可以使用order...

2018-03-30 10:06:42 186

原创 ws升级为wss在nginx上的配置

后台开发websocket协议,采用ws开发,开发完成之后部署上线,配置SSL之后,ws协议就需要升级到wss协议了,在nginx上如下配置就能后将ws->wss  服务端的开发不受ws或者是wss协议的影响,正常开发即可nginx配置如下:...

2018-03-15 18:38:00 6140

原创 解决Spring Boot 使用Maven打包之后运行jar找不到主属性清单的问题

问题描述 在Spring boot项目中采用maven打包,运行jar报 找不到主属性清单 这个时候怀疑是在不到 Main 因而编辑MANIFEST.MF 加入 如下键值对Main-Class: com.test.Main再次运行,结果报 找不到或无法加载主类com.test.Main因而怀疑Spring Boot使用了代理类作为程序的主入口因而搜索Spring Boot的解决办法 如下:(注释的...

2018-03-07 18:01:26 11507 2

原创 使用websocket建立长连接

场景:对于某些实时性要求比较高的前后台交互,可以使用websocket进行全双工的交互,websocket可以使用H5的标准或者是Spring的实现分别如下1.使用H5的标准如下:a.引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>s...

2018-03-02 10:06:07 5749

原创 Executor ExecutorService Executors Runnable Callable Future FutureTask

Executor    执行接口  只有一个方法  void execute(Runnable command)  用来执行任务ExecutorService  是接口Executor的子类 同时提供对线程池的关闭,执行,等方法Executors 提供一些静态方法用于创建各种类型的线程池Runnable  是一个接口,使用很简单 1.实现该接口,重写run方法 2.创建线程 3.线程启动...

2018-02-27 11:16:21 288

原创 raml 的使用

场景.使用raml构建接口文档1.安装能够将raml 转化为 html 文件的 raml2html工具 安装步骤如下npm i -g raml2html2.将编辑好的raml文件生成html文件以便查阅raml2html test.v1.raml > test.v1.html3.下载mock服务以便能够通过http服务访问接口    如果在下载过程中出错诸如(rollbackFailedOp...

2018-02-26 17:31:43 2928

原创 谷歌 captcha 验证码生成工具

1.用于生成验证码的图片a.pom <!--验证码 --> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <ve...

2018-02-11 10:07:12 3149

原创 利用ThreadLocal做线程缓存减少数据库的访问

场景:假设存在如下的表数据studentname age sex coursefang 20 男 1guo 20 女 2courseid name1 数学2 语文这时从数据库中查询出来student之后,考虑到数据量比较大的情况下,不适合做连表查询,但是又需要知道学生选

2018-02-02 16:06:37 2715

原创 利用ResponseBodyAdvice修改返回值

@ControllerAdvicepublic class HahaResponseBodyAdvice implements ResponseBodyAdvice{ @Override public boolean supports(MethodParameter methodParameter, Class> aClass) { return true;

2018-02-02 13:02:40 1968

原创 使用ApplicationListener对访问做日志记录

场景:有时需要后台对每一次的web请求做记录,可以采用如下的方式:@Slf4j@Componentpublic class ServletRequestHandlerEventListaner implements ApplicationListener { /** * 可以实现直接记录 * @param event */ @Override

2018-02-02 12:59:35 485

原创 使用Converter将url中的 long类型的日期转换为 LocalDataTime

场景:对于前端传递过来的数据(GET),比如 Long类型的日期,希望在后台直接获取到LocalDataTime的数据,可以采用Converter来做转化。例子:@Componentpublic class String2LocalDataTimeConverter implements Converter { Pattern pattern = Pattern.compile

2018-02-02 12:56:12 6356

原创 spring boot 使用thymeleaf加载静态资源打成jar之后无法访问

场景:使用Spring boot 加载静态资源步骤如下:1.添加POM依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependen...

2017-12-29 10:35:26 8907 3

原创 spring could 配置中心

场景:将各个服务的配置放在配置中心进行统一的管理1.建立配置中心服务器a.编码如下:1.pom<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

2017-12-22 16:45:23 1606

原创 使用Spring Could 实现负载均衡

场景:在以上场景中 客户端请求一个之后,后面的服务需要能够负载均衡,本次采用Spring Could实现上述模型涉及到的 组件有 Eurekaserver(注册中心)Ribbon(负载均衡器)其中Eurekaserver用于服务端以及负载均衡器的注册,也就是保存了这些服务者的地址信息Ribbon 用于实现特定的负载均衡策略   注意点:提供同一个服务的不同服务提供者

2017-12-22 12:06:54 3679

原创 编写自定义的Spring MVC消息转化器

场景:大多数时候Spring MVC自带的消息转化器已经满足需要了,为了学习此处还是编写一下自定义的消息转化器原理:消息转化器的原理如下图编码1.编写自定义的消息转化器public class CustomJsonHttpMessageConverter implements HttpMessageConverter { private ObjectMapper

2017-12-21 10:51:30 505

原创 使用Spring mvc 的返回值拦截器对controller的返回值做拦截处理

使用场景:有时我们针对特定的返回值类型,希望在Controller处理之后再对结果进行某些特殊的处理,比如修改HTTP的头,或者修改对象等等,这时我们可以采用如下的方式进行统一的处理1.定义特定的返回值对象

2017-12-20 10:32:31 28848 1

原创 JSON对象反序列化为Java对象的时候自定义Date类型的字符串格式

场景:假设前端传递过来一个JSON对象为{    "money":"123.123",    "date":"2017/12/12"}需要将该对象反序列化为Java对象,这个时候需要修改JSON对象反序列化为Java的规则,否则字符串类型的date转化为Java的Date对象时就会报错处理如下:@Configurationpublic class WebMvcCo

2017-12-19 18:17:12 3230

原创 对象序列化为JSON的时候使用策略修改序列化的结果

场景:假设有一个需要序列化的对象中包含一个日期对象,这是如果直接将该对象转化为JSON,日期的格式就不可控,可以使用如下的方式引入自己的策略来控制属性的序列化过程1.编写对象的属性转化策略public class DateTimeSerializer extends JsonSerializer { @Override public void serialize(Date

2017-12-19 17:49:02 244

原创 Spring对对象属性的校验

场景:对对象的参数进行校验,如果不通过抛出异常1.编写需要被校验的对象public class Pet { @NotEmpty(message = "不能为空") private String name; @Range(min = 0, max = 150, message = "范围在0—150之间") private int age; pub

2017-12-19 17:30:34 4331

原创 SpringMvc 异常处理

使用场景当使用Spring MVC进行Web开发的时候,对于异常可以进行集中式的处理首先声明一个异常枚举类public enum ExceptionDesception { NO_PERMISSION(-1,"无权限"); private int code; private String msg; ExceptionDesception(int

2017-12-19 13:28:17 191

空空如也

空空如也

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

TA关注的人

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