- 博客(181)
- 收藏
- 关注
转载 介绍 ForkJoinPool 的适用场景,实现原理
本文的主要目的是介绍 ForkJoinPool 的适用场景,实现原理,以及示例代码。说在前面可以说是说明,也可以说下面是结论:ForkJoinPool 不是为了替代 ExecutorService,而是它的补充,在某些应用场景下性能比 ExecutorService 更好。ForkJoinPool 主要用于实现“分而治之”的算法,特别是分治之后递归调用的函数,例如 quick sort 等...
2019-06-17 16:05:53
82995
5
原创 静态变量一定要先定义再赋值(乍一听有点懵逼)
我曹乍一看,一定认为你这不废话哈哈,Java 中的变量都不是这样的吗,那么见证奇迹的时刻来了。public class TestStatic { private static int i=1; static { i=100; } public static void main(String[] args) { System....
2019-04-04 11:10:01
3469
原创 Java Long /Integer包装类型的值的比较
当时看到Long 的类型的数据比较,脑子都没多想就直接上了==知道公司的一位大哥说出这里有问题。我才去看下了。当这样定义一个Long 包装类型数据 Long i=10L;这个时候起是Java 是会自动调用Long的valueOf 方法的。 public static Long valueOf(long l) { final int offset = 128; ...
2019-03-26 10:34:05
2052
原创 springboot2.x使用validator 进行参数校验
1.简介 经常需要提供接口与用户交互(获取数据、上传数据等),由于这个过程需要用户进行相关的操作,为了避免出现一些错误的数据等,一般需要对数据进行校验,随着接口的增多,校验逻辑的冗余度也越来越大,虽然可以通过抽象出校验的方法来处理,但还是需要每次手动调用校验逻辑,相对来说还是不方便。为了解决这个问题。 Java中提供了Bean Validation的标准,该标准规定了校验的具体内...
2019-03-20 17:37:44
22699
8
转载 (git commit之后,想撤销commit
git commit之后,想撤销commitgit add . //添加所有文件git commit -m “本功能全部完成”执行完commit后,想撤回commit,怎么办?这样凉拌:git reset --soft HEAD^这样就成功的撤销了你的commit注意,仅仅是撤回commit操作,您写的代码仍然保留。说一下个人理解:HEAD^的意思是上一个版本,也可以写成HEAD...
2019-03-15 10:32:30
200
转载 Redis 中的布隆过滤器
原文链接:https://jaychen.cc/redis/2018...作者:JayChen什么是『布隆过滤器』布隆过滤器是一个神奇的数据结构,可以用来判断一个元素是否在一个集合中。很常用的一个功能是用来去重。在爬虫中常见的一个需求:目标网站 URL 千千万,怎么判断某个 URL 爬虫是否宠幸过?简单点可以爬虫每采集过一个 URL,就把这个 URL 存入数据库中,每次一个新的 UR...
2019-03-12 13:54:18
307
原创 springboot2.x数据源配置的坑
哇哇哇,今天来运行一个本来好好的项目突然启动成功后访问,数据时候报错Access denied for user ''@'localhost' ,一脸蒙蔽,又说是数据用户的权限问题,经过debug发现我原来使用的是name即spring.datasource.name=root,这时候username为空,后又去看看springboot的https://docs.spring.io/spr...
2019-03-07 18:04:03
1016
转载 redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比
redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比 redissentinelcluster高可用主从模式 redis作为一种高效的缓存框架,使用是非常广泛的,在数据存储上,在运行时其将数据存储在内存中,以实现数据的高效读写,并且根据定制的持久化规则不同,其会不定期的将数据持久化到硬盘中。另外相较于其他的NoSql数据库,redis提供了非常丰富的数据结构,...
2019-02-20 17:41:13
141
转载 mysql优化–explain分析sql语句执行效率
mysql优化–explain分析sql语句执行效率Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:explain select … from … [where …]例如:explain select * f...
2019-01-02 17:08:25
155
转载 springboot如何测试打包部署
springboot如何测试打包部署 版权声明:本文为博主原创,了解最新劲爆内容,请关注公众号。 https://blog.csdn.net/ityouknow/article/details/71439896有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试、打包到最后的投产...
2018-11-30 09:46:40
136
转载 Spring Boot 1.X和2.X优雅重启实战
Spring Boot 1.X和2.X优雅重启实战 项目在重新发布的过程中,如果有的请求时间比较长,还没执行完成,此时重启的话就会导致请求中断,影响业务功能,优雅重启可以保证在停止的时候,不接收外部的新的请求,等待未完成的请求执行完成,这样可以保证数据的完整性。Spring Boot 1.Ximport java.util.concurrent.Executor;import ...
2018-11-30 09:37:05
302
转载 springboot security 自定义 AuthenticationEntryPoint 和 AccessDeineHandler
springboot security 自定义 AuthenticationEntryPoint 和 AccessDeineHandler原文:https://blog.csdn.net/jkjkjkll/article/details/79975975找了大半天的资料终于在国外的网站上找到了,相关问题,不过还好把security的认证流程和授权流程又重新看了遍:Authentic...
2018-11-28 13:34:51
1434
1
转载 Spring核心注释的列表。
原文链接: https://dzone.com/articles/15-spring-core-annotations-with-examples作者:Ramesh Fadatare译者:complone众所周知,Spring DI和Spring IOC是Spring Framework的核心概念。让我们从org.springframework.beans.factory.annota...
2018-11-15 16:52:13
177
转载 SpringBoot使用本地jar包
SpringBoot使用本地jar包 https://blog.csdn.net/dongdingzhuo/article/details/78731704相信大家和我一样肯定会遇到项目中需要导入自己写的一些jar,并不是所有的jar包在maven上都能下到的,特别有些是公司内部写的,或者自己封装的一下jar包,这种jar包怎么导入到SpringBoot项目中 1.我的jar包在项目中的...
2018-11-09 17:32:47
1775
转载 WebJars&静态资源
WebJars&静态资源转载: https://blog.csdn.net/gozhuyinglong/article/details/80573771创建SpringBoot 的Web项目在创建SpringBoot项目时,勾选Web依赖二、使用WebJars管理css&jsWeb前端使用了越来越多的JS或CSS,如jQuery, Backbone.js 和Bo...
2018-11-09 17:14:56
1440
原创 threadlocal 的使用
介绍:ThreadLocal是啥?有些伙伴喜欢把它和线程同步机制混为一谈,事实上ThreadLocal与线程同步无关。ThreadLocal虽然提供了一种解决多线程环境下成员变量的问题,但是它并不是解决多线程共享变量的问题。所以ThreadLocal与线程同步机制不同,线程同步机制是多个线程共享同一个变量,而ThreadLocal是为每一个线程创建一个单独的变量副本,故而每个线程都可以独立...
2018-11-08 14:55:58
359
转载 Java 线程池
一、Java 线程池 Java通过Executors提供四种线程池,分别为:1、newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。(线程最大并发数不可控制)2、newFixedThreadPool:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。3、newScheduledThre...
2018-11-07 14:27:15
153
转载 git的一些基础命令
git的一些基础命令Git常用命令请确保已经安装了git客户端 一般配置 git --version //查看git的版本信息 git config --global user.name //获取当前登录的用户 git config --global user.email //获取当前登录用户的邮箱 登录git /* 如...
2018-11-07 10:36:09
140
转载 STOMP和WebSocket
STOMP 客户端 API 整理本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jqsad/article/details/77745379参考教程:http://jmesnil.net/stomp-websocket/doc/在使用 stomp.js 时,能找到的较完整的 API 说明基本都是英文,中文资料比较少,因此,参考上边的教程做了以下的...
2018-11-05 15:43:35
29438
4
转载 Spring消息之WebSocket
Spring消息之WebSocket阅读目录一、WebSocket简介 二、使用Spring的低层级WebSocket API 三、使用SockJS支持WebSocket 一、WebSocket简介 WebSocket 的定义?WebSocket是HTML5下一种全双工通信协议。在建立连接后,WebSocket服务器端和客户端都能主动的向对方发送和接收数据,就像Sock...
2018-11-05 14:50:39
192
1
原创 springboot mvc 配置WebMvcConfigurerAdapter 过时使用WebMvcConfigurer 或者WebMvcConfigurationSupport
配置拦截器:package top.mschen.blog.common.config;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import org.springframework.web.servlet.Handle...
2018-11-02 11:10:29
533
转载 swagger2
Java ACE App cat bean API build现代化的研发 组织 架构中,一个研发团队基本包括了 产品 组、后端组、前端组、APP端研发、 测试 组、 UI 组等,各个细分组织人员各司其职,共同完成产品的全周期工作。如何进行组织架构内的有效高效沟通就显得尤其重要。其中,如何构建一份合理高效的接口文档更显重要。接口文档横贯各个端的研发人员,但是由于接口众多,细节不一,有时候理...
2018-11-01 17:49:52
169
转载 Redis 序列化方式StringRedisSerializer、FastJsonRedisSerializer和KryoRedisSerializer
https://blog.csdn.net/xiaolyuh123/article/details/78682200当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认...
2018-11-01 11:17:44
10514
原创 springboot2.x 集成springcache --redis实现
Springcahce介绍从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的...
2018-11-01 11:05:48
597
转载 怎么RESTful理解幂等性
理解RESTful的幂等性,并且设计符合幂等规范的高质量RESTful API。怎么理解幂等性HTTP幂等方法,是指无论调用多少次都不会有不同结果的 HTTP 方法。不管你调用一次,还是调用一百次,一千次,结果都是相同的。还是以之前的博文的例子为例。 GET /tickets # 获取ticket列表 GET /tickets/12 # 查看某个具体的ticket ...
2018-10-30 13:54:18
151
转载 HTTPS 降级攻击的场景剖析与解决之道
HTTPS 一定安全么HTTP 协议,本身是明文传输的,没有经过任何安全处理。那么这个时候就很容易在传输过程中被中间者窃听、篡改、冒充等风险。这里提到的中间者主要指一些网络节点,是用户数据在浏览器和服务器中间传输必须要经过的节点,比如 WIFI 热点,路由器,防火墙,反向代理,缓存服务器等。HTTP 协议,中间者可以窃听隐私,使用户的敏感数据暴露无遗;篡改网页,例如往页面插的广告内容,甚至进行...
2018-10-30 13:45:55
2179
转载 服务端通信安全攻防详解
接着,昨天《HTTPS原理剖析与项目场景》的话题,我觉得安全方面有蛮多话题可以聊聊的,那么今天再分享一篇《服务端通信安全攻防详解》。服务端接口通信过程中,一般是明文传输的,没有经过任何安全处理。那么这个时候就很容易在传输过程中被中间者窃听、篡改、冒充等风险。因此,对于敏感信息,以及重要文件就需要进行加密策略,保证通信的安全性。Base64加密传输Base64是网络上最常见的用于传输...
2018-10-30 13:43:42
507
转载 HTTPS原理剖析与项目场景
为什么使用HTTPSHTTP 协议,本身是明文传输的,没有经过任何安全处理。那么这个时候就很容易在传输过程中被中间者窃听、篡改、冒充等风险。这里提到的中间者主要指一些网络节点,是用户数据在浏览器和服务器中间传输必须要经过的节点,比如 WIFI 热点,路由器,防火墙,反向代理,缓存服务器等。HTTP 协议,中间者可以窃听隐私,使用户的敏感数据暴露无遗;篡改网页,例如往页面插的广告内容,甚至进...
2018-10-30 13:39:41
300
转载 如何防范常见的Web攻击
今天,从开发人员的角度,并结合我在开发过程中遇到的问题,说说《如何防范常见的Web攻击》话题。SQL注入攻击SQL注入攻击,这个是最常聊到的话题,使用过Java的开发人员,第一个反应就是一定要使用预编译的PrepareStatement,是吧?什么是SQL注入攻击攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构造,并在数据库中...
2018-10-30 11:26:58
717
转载 选择合适的数据存储方案
在服务端会经常遇到数据存储的选型问题,是选择使用关系型数据库 MySQL,还是选择内存数据库 Redis,还是选择文档数据库 MongoDB,还是选择列族数据库 HBase, 还是选择全文搜索引擎 ElasticSearch 呢?本节主要介绍如何选择合适的数据存储方案。关系型数据库 MySQLMySQL 是一个最流行的关系型数据库,在互联网产品中应用比较广泛。一般情况下,MySQL 数...
2018-10-30 11:19:44
2428
转载 mysql 的服务指南
MySQL(02) 存储引擎的 InnoDB 与 MyISAM 之争作为 MySQL 数据库的两种主要的存储引擎,InnoDB 与 MyISAM 各有长处。在 MySQL 5.1 及之前的版本中,MyISAM 是默认的存储引擎,而在 MySQL 5.5 版本以后,默认使用 InnoDB 存储引擎。MyISAM 不支持行级锁,换句话说,MyISAM 会对整张表加锁,而不是针对行。同时...
2018-10-30 11:17:12
175
1
转载 MySQL(01) 数据类型的使用与选择
原文:http://blog.720ui.com/2017/mysql_core_01_data_type/要了解 MySQL 数据库,首先必须要了解 MySQL 支持的数据类型。实际上,MySQL 支持很多数据类型,包括整数类型、实数类型、字符串类型、枚举类型、时间类型等。整数类型对于整数类型,可以使用 TINYINT、 SMALLINT、 MEDIUMINT、 INT、 BIG...
2018-10-30 10:33:25
516
转载 跨域问题,解决之道
跨域问题,解决之道发跨域问题,在日常开发过程中,是一个非常熟悉的名词。今天的话题,结合我之前的项目场景,讨论下《跨域问题,解决之道》。跨域是什么跨域问题,是由于JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。换句话说,只有JavaScript存在跨域问题。什么情况下会出现跨域不同源访问,就算是跨域了哟。那什么才算同源呢?一般来说,同源,即同一来源,包括...
2018-10-30 10:21:25
119
转载 读取classpath 下的文件
首先分两大类按web容器分类一种是普通的web项目,像用Tomcat容器,特点是压缩包随着容器的启动会解压缩成一个文件夹,项目访问的时候,实际是去访问文件夹,而不是jar或者war包这种的无论你是用获取路径的方法this.getClass().getResource("/")+fileName,获取流的方法this.getClass().getResourceAsStream(failNa...
2018-10-29 10:04:08
646
原创 springboot多环境配置,和mavenprofile 的使用
一.介绍在中大型企业项目开发中,环境分离是必不可少的一步,然而现在的开发人员也只是有这个概念,还是有很多项目采用普通的方式,每次打包发布部署的时候改动一大堆的配置文件,有一个地方忘记改就相当于白更新了一次系统,这种修改配置文件完成环境更换的方式给我们带来了很多的困扰,浪费了我们很多宝贵的时间!早在Spring 3.1版本就已经为我们提供了环境分离的相关注解配置方式,不过在传统的Spring项目...
2018-10-26 15:12:35
363
转载 Spring配置中的"classpath:"与"classpath*:"的区别研究(转)
Spring配置中的"classpath:"与"classpath*:"的区别研究(转)概念解释及使用场景:classpath是指WEB-INF文件夹下的classes目录。通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下: <!--系统自动加载文件--><!--这里使用的是classpath*:的形式-->...
2018-10-26 11:18:51
96
转载 JAVA BIO与NIO、AIO的区别(这个容易理解)
JAVA BIO与NIO、AIO的区别(这个容易理解) IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送...
2018-10-26 10:30:45
153
转载 java 常用IO流操作详解
java 常用IO流操作详解1.基本概念IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。2.IO流的分类图示:(主要IO流) 3.字节流(1).字节流基类1).InputStreamInputStream:字节输入流基类,抽象类是表示字节输入流的所有类的超类。 常用...
2018-10-26 10:26:08
164
转载 Spring Boot配置文件放在jar外部
Spring Boot配置文件放在jar外部通过命令行指定SpringApplication会默认将命令行选项参数转换为配置信息例如,启动时命令参数指定:java -jar myproject.jar --server.port = 9000从命令行指定配置项的优先级最高,不过你可以通过setAddCommandLineProperties来禁用SpringApplic...
2018-10-23 17:39:47
245
转载 Spring读取配置文件的几种方式
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.Reader;import java.util.Properties;import org.junit.Test;...
2018-10-23 15:58:34
1012
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人