Executor 之 线程池及定时器 1. Executor系列接口Executor用于解耦任务(Runnable)提交者和执行者,它只有一个方法void execute(Runnable command),通过调用它向执行者提交任务,但无法知道执行的结果/进度,也无法拿到任务返回值。ExecutorService 继承Executor,是一个更具体的接口。它额外提供了以下方法: 关闭执行者 shut...
mongodb启动脚本 启动脚本:nohup /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/data/mongodb.log --logappend >/dev/null 2>&1 & 这样敲命令也着实苦逼,所以从网上找了一个mongodb服务脚本就舒服多了: 1 ...
ELK的安装,快速搭建一个ELK日志分析平台 ELK 是 ElasticSearch、 LogStash、 Kibana 三个开源工具的简称,现在还包括 Beats,其分工如下:LogStash/Beats: 负责数据的收集与处理ElasticSearch: 一个开源的分布式搜索引擎,负责数据的存储、检索和分析Kibana: 提供了可视化的界面。负责数据的可视化操作基于 ELK Stack 可以构建日志分析平台、数据分析搜索平台等非常有用的项...
java 7个工具 Alex Zhitnitsky告诉我们这7个辅助工具的主要功能特点,这些工具每个java程序员都应该了解一下。这篇文章最初发表在takipi的博客–Java与Scala异常分析和性能监控.在准备进行锁和负载测试之前,应该对一些最新的最具创新性的工具有一个快速了解。为了防止你错过这些信息,rebellabs最近公布了对Java工具和技术全景的一个全球性调查结果。除了一些已有的或知名度很高的工具,现在...
Spring Boot 编写Servlet、Filter、Listener、Interceptor的方法 在编写过滤器、监听器、拦截器之前我们需要在spring-boot启动的类上加上注解@ServletComponentScan:?1234567@SpringBootApplication@ServletComponentScanpublic class MySpringbootApplication { public static void main(String[] args) { Spr...
Spring MVC中@JsonView的使用 一、@JsonView注解的简介@JsonView是jackson json中的一个注解,Spring webmvc也支持这个注解,它的作用就是控制输入输出后的json二、@JsonView注解的使用步骤1.使用接口来声明多个视图package com.knyel.dto;public class User { public interface UserSimpleView {};...
JSONPath-简单入门 JSONPath - 是xpath在json的应用。xml最大的优点就有大量的工具可以分析,转换,和选择性的提取文档中的数据。XPath是这些最强大的工具之一。如果可以使用xpath来解析json,以下的问题可以被解决:1,数据不使用特殊的脚本,可以在客户端交互的发现并取并获取。2,客户机请求的JSON数据可以减少到服务器上的相关部分,这样可以最大限度地减少服务器响应的带宽使用率。如果我们愿意,这...
Java锁之自旋锁详解 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑。1、自旋锁自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区。如下复制代码...
ThreadFactory 作用 异常捕获public class LoggerThreadFactory implements ThreadFactory { @Override public Thread newThread(Runnable r) { Thread t = new Thread(r); t.setUncaughtExceptionHandler(new Thread....
404错误处理进阶 前言在上一篇文章中介绍了spring boot 官方文档推荐的异常处理方式.承接上一篇文章,我们来了一下如何更好的处理404错误.在spring boot / cloud (二) 规范响应格式以及统一异常处理这篇文章的最后跟大家提到了如下的配置spring.mvc.throw-exception-if-no-handler-found=truespring.resources.add
异常统一处理进阶 前言在spring boot / cloud (二) 规范响应格式以及统一异常处理这篇博客中已经提到了使用@ExceptionHandler来处理各种类型的异常,这种方式也是互联网上广泛的方式今天这篇博客,将介绍一种spring boot官方文档上的统一处理异常的方式.大家可以在spring boot 官方文档查看介绍在开始介绍新的方法之前 , 我们先来分析一下 , 以前的做法有那些地
使用quartz搭建调度中心 ###quartz介绍:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.0##思路将quartz
使用rabbitmq消息中间件 ###rabbitmq介绍:RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。###amqp介绍:即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端
使用RestTemplate来构建远程调用服务 ###RestTemplate介绍:RestTemplate是spring框架中自带的rest客户端工具类,具有丰富的API,并且在spring cloud中,标记@LoadBalanced注解,可以实现客户端负载均衡的rest调用.##思路RestTemplate虽然提供了丰富的API,但是这些API过于底层,如果不稍加控制,让开发人员随意使用,那后续的代码也将会变的五花八门
使用@Retryable来进行重处理 ###什么时候需要重处理?在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败,调用远程服务失败,争抢锁失败,等等,这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码.然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优
开启CORS跨域访问 ###什么是CORS?Cross-origin resource sharing(跨域资源共享),是一个W3C标准,它允许你向一个不同源的服务器发出XMLHttpRequest请求,从而克服了ajax只能请求同源服务的限制.并且也可以通过灵活的设置,来指定什么样的请求是可以被授权的.###什么是跨域?假设你在http://xxx.com/test/下有一个js文件,从这个js里
规范响应格式以及统一异常处理 我认为,采用预先约定好的数据格式,将返回数据(无论是正常的还是异常的)规范起来,有助于提高团队间接口对接的效率(前端和后端,后端和后端等).##思路自定义统一的ResposeBody类 : 用于统一响应格式自定义统一的Error类 : 用于统一异常格式自定义异常 : 区分不同场景的异常实现ExceptionHandler : 用于拦截处理异常##
使用filter防止XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。##二.思路###基于filter拦截,将特殊字符替换为html转意字
CSRF攻击原理及防御 一、CSRF攻击原理 CSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。想要深入理解CSRF的攻击特性我们有必要了解一下网站session的工作原理。 session我想大家都不陌生,无论你用.net或PHP开发过网站的都肯定用过session对象,然而session它是如何工作的