- 博客(130)
- 资源 (8)
- 收藏
- 关注
转载 一网打尽 @ExceptionHandler、HandlerExceptionResolver、@controlleradvice 三兄弟!
一网打尽 @ExceptionHandler、HandlerExceptionResolver、@controlleradvice 三兄弟!把 @ExceptionHandler、HandlerExceptionResolver、@controlleradvice 三兄弟放在一起来写更有比较性。这三个东西都是用来处理异常的,但是它们使用的场景都不一样。看本文给你详细的讲解,再也不怕面试被问到了...
2019-12-03 22:22:54 785
原创 spring 声明式事务例子
spring支持编程式事务管理和声明式事务管理两种方式。编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根...
2019-03-29 18:34:46 574
转载 spring整合redis使用RedisTemplate的坑Could not get a resource from the pool
一、背景 项目中使用spring框架整合redis,使用框架封装的RedisTemplate来实现数据的增删改查,项目上线后,我发现运行一段时间后,会出现异常Could not get a resource from the pool。起初我是觉得redis的最大连接数不够,所以一味地增大最大连接数,试了几次,发现还是报异常:Could not get a resource from the...
2019-03-14 18:32:28 4793
转载 阿里巴巴非常优秀的开源项目
1.分布式应用服务开发的一站式解决方案 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spr...
2019-02-21 09:30:29 714
转载 Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化
Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下:这三种模式的不同之处如下:BIO:一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。Tomcat7或以下,在Linux系统中默认使用这种方式。NIO:利用Java的异步IO处理,可以通过少量的线程处理大量的请求。Tomcat8在Linux系统中默认使用这种方式。T...
2018-12-26 17:04:44 769
转载 Java线程池详解
作者:CarpenterLee链接:http://www.cnblogs.com/CarpenterLee/p/9558026.htmlJava线程池详解构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?Runnable和Callable的区别是什么?本文将对这些问题一一解答,同时还将给出使用线程池的常见场景和代码片段。基础知识Executors创建线程池Java...
2018-12-26 15:56:16 237
转载 spring boot 项目启动初始化资源或配置的方式
转载来自:https://rensanning.iteye.com/blog/2363313 启动成功后可以通过以下方法运行自己的初始代码: @PostConstruct注解 ApplicationReadyEvent事件 CommandLineRunner/ApplicationRunner接口Java代码 @Component public class St...
2018-12-20 16:25:54 1620
转载 SpringBoot 常用注解大全
作者:tanwei81 ,链接:www.cnblogs.com/tanwei81一、注解(annotations)列表@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它...
2018-12-11 09:57:45 300
转载 Eclipse转IDEA一定要改的8条配置
作者:孤独烟来自:打杂的ZRJ引言坦白说,我很少写这种操作类型的文章。因为这种文章没啥新意,大家操作步骤肯定是一样的。然而,我答应了我的同事小阳,给她出一篇!毕竟人家打算从Eclipse转IDEA了,于是以示鼓励,写一篇给她!那么是哪八条一定要改的配置呢!我没列快捷键,是因为IDEA原生的快捷键,我用的也挺顺手,所以并不是认为一定要改! 自动编译开关 忽略大小写...
2018-11-28 18:43:41 369
转载 谈谈分布式锁的实现
作者:奎哥本文原创发布于微信公众号「 不止思考 」大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资源数据是一致的,那么就必须要求在同一时刻只能被一个客户端处理,不能并发的执行,否者就会出现同一时刻有人写有人读,大家访问到的数据就不一致了。...
2018-08-29 10:04:44 227
转载 RabbitMQ Exchange Queue RoutingKey BindingKey解析
许多新手在刚接触RabbitMQ的时候,会被各种名词弄晕,包括ConnectionFactory 、Connection 、Channel、Exchange、Queue、RoutingKey、BindingKey等等,现在我言简意赅的描绘一下这些名词到底是啥概念首先我们肯定知道RabbitMQ就是消息队列的一种实现,那么围绕这个,我们就可以思考一个消息队列到底需要什么,当然是需要队列,那么这个队列...
2018-05-24 13:59:25 9964 2
转载 Java代码优化(长期更新)
Java代码优化(长期更新)前言2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸鱼自然饱了。代码优化一样,也许一个两个的优化,对于提升代码的运行效率意义不大,但是只要处处都能注意代码优化,总体来说对于提升代码的运行效率就很有用了。这个观点,在现在看来,是...
2018-05-03 11:48:59 307
转载 基于springmvc的easypoi简单使用
基于springmvc的easypoi简单使用最近要做一些excel导入导出的工作,就花时间研究了一下,官方文档实在是有点不足,在这里分享一下研究成果项目框架,SSM框架,基础框架是直接从mybatis-plus项目上 clone下来的 使用eclipse开发 官方资料http://git.oschina.net/jueyue/easypoimaven基本依赖 <dependency>...
2018-04-26 11:20:03 1325
原创 @NotEmpty,@NotBlank,@NotNull的使用
判断业务增删改查的时候,我们一般需要判断一些字段是否为空,为null,长度是否为空。之前常用的做法是直接通过if else判断,这样显得代码层面比较冗余,刚好看到以下这些注解方便简洁多了,于是搜集了相关资料,直接使用。@NotEmpty 用在集合上面@NotBlank用在String上面@NotNull用在基本数据类型上面1. @NotEmptyAsserts that the annotated...
2018-04-11 10:08:43 3764
转载 Java 程序员常用的开发工具
1、常用开发工具作为一名Java程序开发人员,可以的选择集成开发环境IDE(Integrated Development Environment)非常多,得益于Java是一门开源语言。有开源免费的;有商用收费的。如何选择一款适合自己的集成开发环境,亦或说选择一款符合自己项目开发需要的集成开发环境。如果选择得当,那么就能够使得开发工作事半功倍;否则事倍而功半。 免费开源EclipseEclipse最...
2018-03-30 11:45:16 107929 3
转载 MySQL命令show full processlist
processlist命令的输出结果显示了有哪些线程在运行,可以检查当前数据库的运行状态,两种方式使用这个命令。1 进入MySQL/bin目录下输入mysqladmin processlist;2启动mysql,输入show processlist;如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己账户的线程.演示:mysql> show full processlist;+...
2018-03-27 10:46:56 1378
原创 spring boot 直接通过url访问获取内部或者外部静态资源图片
第一种方式,在代码上配置@Configuration public class WebMvcConfiguration extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //addRe...
2018-03-22 10:19:21 46223 17
转载 Lombok介绍及使用方法 lombok简介
Lombok介绍及使用方法 lombok简介摘要: 转载 http://www.cnblogs.com/holten/p/5729226.html Lombok介绍及使用方法 lombok简介 lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间转载http://www.cnblogs.com/holten/p/572922...
2018-03-07 16:20:47 844
转载 Java将每半年发布一个版本
Oracle近日宣布,他们将Java的发布频率改为每六个月一次。JCP执行委员会在八月份的会议上提到了这一说法,随后,Oracle发言人Donald Smith在他的博客中确认了这一消息。该决定将在Java 9正式发布之后开始实行,也就是说,Java的下一个发布日期是2018年初。除了发布周期,Oracle还宣布了在Java的构建和发布方式方面所发生的主要变化。Oracle将把OpenJDK的二进...
2018-03-07 15:45:16 1181
转载 JDK8新特性一览
官方新特性说明地址Jdk8新特性.png下面对几个常用的特性做下重点说明。一、Lambda表达式1.1 函数式编程百科介绍:http://baike.baidu.com/link?url=LL9X3-SoS4XJGgdzrXvURuKEGm6ad5zY1NLDxDygjTaSRnEZ0Bp3wqX0QgkB7fjPwMSQS1tLfqdRMKUhNti7MH7DEK7JQ_lXcs9k6LXHT1...
2018-03-06 18:13:27 227
转载 Java 8为什么需要Lambda表达式
函数编程在C#、Python、JavaScript中都得到充分体现。而Java直到最新的Java 8才开始正式支持函数编程,最明显的改进就是对Lamba表达式的支持。正如C#之父Anders Hejlsberg在那篇文章 编程语言大趋势 中所讲,未来的编程语言将逐渐融合各自的特性,而不存在单纯的声明式语言(如之前的Java)或者单纯的函数编程语言。将来声明式编程语言借鉴函数编程思想,函数编程语言融...
2018-03-06 18:11:04 379
原创 java实现图片image和字符串String的相互转换
java安装的目录下的jre/lib/rt.jar中有以下两个类实现base64的编码和解码:sun.misc.BASE64Encodersun.misc.BASE64Decoder下面是java实现:public class Imagebase64 { static BASE64Encoder encoder = new sun.misc.BASE64Encoder(); stati...
2018-03-05 14:26:06 8887
原创 spring boot打jar包和打war包的区别作用
spring boot既可以打成war发布,也可以找成jar包发布。说一下区别jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。war包:传统的应用交付方式,需要安装tomcat,然后放到waeapps...
2018-03-02 15:03:26 16582 8
原创 eclipse debug启动老是跳转到断点,提示SilentExitException
最近在做一个spring boot的项目,在main方法debug启动的时候,老是自动跳转到断点,如图所示出现这种状况是因为Eclipse默认开启挂起未捕获的异常(Suspend execution on uncaught exceptions),只要关闭此项就可以了。解决方法:在eclipse中选择Window->Preference->Java->Debug,将“Suspen...
2018-02-28 17:52:05 24833 8
原创 解决异常报错java.sql.SQLException: Value '0' can not be represented as java.sql.Timestamp
最近做项目查询数据库操作的时候,单单有一个表的查询操作一直报错,JAVA在连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP。这一问题在官方文档中有详细说明...
2018-02-28 16:22:10 4383
原创 request获取项目名称,获取访问路径url
// /archeshein/supplyDemo/selectSupplyDemoEntites 获取uriString requestURI = request.getRequestURI();// /archeshein 获取项目名称String contextPath = request.getContextPath();// http 获取协议String scheme = reques...
2018-02-27 14:38:38 24369 1
转载 git创建分支并推送到远程分支
现在我在master分支上,工作目标是干净的,也没有需要commit的:$ git branch* master release$ git statusOn branch masterYour branch is up-to-date with 'origin/master'.nothing to commit, working directory clean新建远程分支新建一个...
2018-02-27 11:47:51 191452 1
原创 解决eclipse中点击Deployment Assembly选项时出现the currently displayed page contains invalid values
某一天把项目checkout下来发现部署的时候选不到该项目,右键项目点击web出现"the currently displayed page contains invalid values"同时,出现这个问题会导致项目在eclispe中启动不成功,可能控制台没出现报错,但实际项目是没有被tomcat加载。即使打成war包运行,实际tomcat也没有运行这个war包。解决办法是:在test(项目名)...
2018-02-26 11:42:06 9388
原创 解决spring boot redis序列化key-value乱码\xac\xed\x00\x05t\x00
最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下图第二个keyspring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSe...
2018-02-25 17:05:54 18351 2
原创 分布式和集群的意义区别和联系
集群多台服务器组成的一组计算机,作为一个整体存在,向用户提供一组网络资源,这些单个的服务器就是集群的节点。集群拥有以下两个特点:1. 可扩展性:集群的性能不限制于单一的服务实体,新的服务实体可以动态的添加到集群,从而增强集群的性能。2. 高可用性:集群当其中一个节点发生故障时,这台节点上面所运行的应用程序将在另一台节点被自动接管,消除单点故障对于增强数据可用
2018-01-24 22:14:22 4371
转载 生产环境的tomcat调优和jvm调化
下面讲述的是tomcat的优化,及jvm的优化Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你。对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU 的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU 的处理能力越强,系统运行速度越快。Tomcat 的优化不像其它
2018-01-23 22:04:55 14258 5
原创 Java 秒杀高并发系统的一些想法设计
最近因为业务需要,在设计一些秒杀的应用场景,根据网上已经有资料,经过自己综合分析,得出以下结论,还请多多赐教!!高并发一、前端1,尽可能在上游拦截和限制请求,限制流入后端的量,保证后端系统正常。因为无论多少人参与秒杀,实际成交往往是有限的,而且远小于参加秒杀的人数,因此可以通过前端系统进行拦截,限制最终流入系统的请求数量,来保证系统正常进行。
2018-01-23 21:24:52 509
转载 如何控制某个方法允许并发访问线程的个数?
如何控制某个方法允许并发访问线程的个数? 1 package com.soyoungboy; 2 3 import java.util.concurrent.Semaphore; 4 /** 5 * 6 * @author soyoungboy 2017年1月25日15:51:15 7 * 8 */ 9 public class Semaphor
2018-01-17 15:17:55 3246
原创 Java多线程问题总结
温故而知新,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能
2018-01-11 23:03:00 197
原创 如何判断java多线程是否全部执行完了,并计算总耗时?
// 日前工作遇到一个需求,就是把硬盘的文件(大量文件)全部读取出来,然后全部解析生成文件保存到硬盘需要多线程处理,并要计算全部执行结束后的耗时。以下是实现方法.// 创建线程池ExecutorService cachedThreadPool = Executors.newCachedThreadPool();// 开启一个线程cachedThreadPool.execute(ne
2018-01-08 17:14:04 16414
转载 Tomcat安全配置与性能优化
Tomcat安全配置与性能优化 Java知音 Tomcat 是 Apache软件基金会下的一个免费、开源的WEB应用服务器,它可以运行在 Linux 和 Windows 等多个平台上,由于其性能稳定、扩展性好、免费等特点深受广大用户喜爱。目前,很多互联网应用和企业应用都部署在 Tomcat 服务器上,比如我们公司,哈。 之前我们 tomcat
2017-12-29 10:03:16 402
转载 MySQL5.6免安装版环境配置图文教程
这篇文章主要为大家详细介绍了MySQL免安装版环境配置图文教程,很实用,感兴趣的小伙伴们可以参考一下MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行。但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的。很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾水,不知如何安装。下面小编将介绍如何解决此情况下安装过程中的
2017-12-04 11:28:55 1380
转载 Spring Cloud与Spring Boot版本匹配关系
Spring Cloud是什么?“Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems.” Spring Cloud为开发者提供了一套可以用来快速搭建分布式系统中常见模式的工具。提取主干即是Spring Clou
2017-11-27 15:12:18 19375 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人