java
文章平均质量分 87
XyGoodCode
这个作者很懒,什么都没留下…
展开
-
tomcat/Jboss启动ClassNotFoundException问题思考
遇到特别邪门的一件事,就是一个很正常的项目,tomcat启动一直报ClassNotFoundException:xxx当然,这个问题很简单处理。其原因就是maven或者项目所需的一些jar包,没有同步到WEB-INF/lib目录下面,也就是项目压根就没跑起来,tomcat就抛出异常了。这个问题的解决办法就是--》项目右键property-->Deployment Assembly-->...原创 2018-05-14 17:03:34 · 1210 阅读 · 0 评论 -
线程池的管理,源码解析以及RejectedExecution
对于线程池用的也不少,但是最近还是糟了一坑。还是要深入了解一下线程池的使用,以免以后遭重 对于JavaEE项目来说,服务端项目是一直启动着,有的时候需要异步或者大并发的项目来的时候,就会想到使用多线程或者线程池来维护有关的线程。 最近有一个很简单的需求,就是一个方法,可能是异步或者同步返回一个结果。该方法,全局一个调用就够了,不用很多线程同时工作。就想着用f...原创 2018-05-29 18:17:53 · 1233 阅读 · 0 评论 -
分布式自定义权限控制-01 JSP页面权限控制
如果提前正常一个java EE项目,权限控制是必不可少的一环。无论干嘛都绕不过权限控制一说。比如,没有权限的人不能发起页面请求,ajax请求,比如JSP页面有权限的人和没有权限的用户,是两种展现。有些人有查询按钮,有些人没有查询按钮等。 如上方提到的相关权限控制是在平常不过的要求了。页面请求,和ajax请求一般是可以通过Spring 或者 structs 的拦截器,对相关...原创 2018-06-29 16:43:14 · 1754 阅读 · 0 评论 -
三种遍历顺序的区别和性能
1、Iterator接口 Iterator也是Java集合框架的成员,主要用于遍历(即迭代访问)Collection集合中的元素,也称为迭代器。提供的三种方法:boolean hasNext():返回集合里的下一个元素。Object next():返回集合里下一个元素。void remove();删除集合里上一次next方法返回的元素。简单实例:public class test1 { ...转载 2018-07-05 15:07:38 · 2046 阅读 · 0 评论 -
BeanCreationException+Is it an abstract class?错误解决
以前用的都是自动注解,自动注解中,会对abstract类的注入和bean的生成自动处理。但是此次项目统一使用xml配置文件形式。 还是使用了和普通类一样的注解形式。导致spring 解析时,按照普通类处理,不能实例化,抛出错误。<bean id="protocolBaseService" class="com.zxy.protocol.service.common.Protoc...原创 2018-07-06 10:44:37 · 1805 阅读 · 0 评论 -
JAVA参数统一验证扩展
Java中都可以以对象做为传输的形式,所有的本地接口,dubbo接口调用,都是要和对象打交道的 作为很平常的一个接口之间的调用,对于接口中传递对象的参数校验是必不可少的,如果说对象内容较少,一个两个if就可以验证完毕,但是当接口参数超过10个,还要对内部参数进行:非空,是否大于xxx小于xxx,长度不能超过多少的时候,就很头疼了。第一是浪费时间,第二是修改的时候可读性也不...原创 2018-09-27 18:04:29 · 1515 阅读 · 0 评论 -
JAVA:excel通用解析按所需对象返回集合(附DEMO)
在平时开发和使用过程中,经常会出现要使用excel解析文件,用来处理一些批量业务,比如批量创建,批量修改,或者批量入库保存,这类业务的特点是,一般用txt或者excel保存待处理数据,每一行对应N个字段,N个字段有些可为空,有些不为空,N行循环解析完毕后,获取相应的列的值,一个一个处理,其实处理方有很多种,但是如果说,没有一个通用接口去处理这件事,每次都要写很多的解析代码,然后...原创 2018-09-30 14:28:48 · 767 阅读 · 0 评论 -
多种单点登录的方法和之间的比较
有个项目可能要用到单点登录,以前也搭过cas的单点登录,公司用的是redis检查sessionId的方式单点登录。因为以前的cas比较久远,忘记了很多,所有有了疑惑,redis的单点登录和cas的单点登录有什么区别,为什么redis的那么简单,还没替换掉cas的呢。这里做一个简单的比较,方便以后的理解。 首先,简单说下redis实现单点登录的方式,其实用redis甚至...原创 2018-10-26 13:44:21 · 2138 阅读 · 1 评论 -
关于非分布式事务和资金字段修改的并发问题记录
1.在非分布式的接口级调用,如spring 的注解注入或者bean注入。他的事务是可以配置传播属性的。既,在同一项目下,如果A接口通过,B接口通过,C接口异常,在配置默认传播属性=REQUIRED。C接口异常会导致ABC均回滚。 需要注意的是,因为是接口级的调用,每个想要回滚的接口都要配置事务,以及传播属性为REQUIRED 2.关于资金修改的并发问题,三种...原创 2018-10-31 11:53:43 · 277 阅读 · 0 评论 -
MYSQL 下的自定义序列(可回零)
公司数据库用的oracle,但是个人开发和自己写东西一般用mysql,觉得序列这个东西还是蛮好用的,但是mysql本身却没有这个功能,于是想自己试着写一下,以后要是啥项目用得上也方便。 网上的有很多,但是有些是会报错,有些很啰嗦,其实没那么复杂。 先说下我的计划需求 1.可以有多个,分开维护不同的序列*(原因是,可能有...原创 2018-11-29 11:23:45 · 429 阅读 · 1 评论 -
JAVA常用排序算法详解
本来想 自己总结一下Java的常用排序算法,查了下发现有篇博客写的挺完整的,这里转载一下,相关的博客内容正确性和代码正确性,我这边会有所检查和修改,转载地址见最下方。 相较于原博客,我会对代码进行复审,并且加上相关注解,便于理解最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个...转载 2019-02-20 14:03:32 · 804 阅读 · 1 评论 -
boostrap行内修改编辑(整行修改,统一提交)
最近一个项目,提到了可以用行内样式编辑最好,要求是,一个html table,一行的最后有个编辑按钮,然后点击编辑以后,能对这行进行修改。如果确认修改点击确认,可以对整行进行修改。如果,不想修改了则直接点击取消。返回非编辑状态。 对于这个我觉得还是挺有意思的,而且也是可以实现的,先是在网上找现成的代码,代码都是boostrapTable+xeditable的整合形式。但是我们这个项目,...原创 2018-02-08 15:09:36 · 1334 阅读 · 0 评论 -
StringBuffer和String速度
在公司看到了一段代码: StringBuilder logStr = new StringBuilder("merID=") .append(accountReqBean.getMerId()).append(",merDate=") .append(accountReqBean.getMerDate()).append(",merOrdId=") .append(a原创 2018-01-19 11:45:27 · 370 阅读 · 0 评论 -
Spring的事务管理和Aop
事务和aop也是面试和Spring代码开发中老生常谈的问题,对于这块,我自己的感觉是都能说出是干嘛的也能写出东西,但是详细的深入的了解,和他们之间的关系其实不是很清楚。每次有人问aop能干嘛时,一般就直接说哥,可以完成事务,或者拦截器等有关面向切面的功能,一般也就结了。但是,这是不好的,在这里想总结一下,事务管理和aop之间的联系,同时主要说下Spring事务管理的问题。 事务管理:原创 2018-01-17 18:13:42 · 3332 阅读 · 0 评论 -
快速排序算法及比较
最近想看了下算法,想至少对于优秀的算法有个大致的了解。最后发觉,快速排序是综合来说很好的一个算法,于是记录一下快排算法,和于其小弟冒泡排序的时间比较,让我具体了解,其效率的差别,一下是代码,和测试几率快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部原创 2017-06-02 15:00:12 · 382 阅读 · 0 评论 -
Spring 关于bean的获取以及自定义注解的起始注入和获取
最近有收获了一点东西,特来记录。假设一个场景,一个学生的学习计划根据其不同的人,和学习内容有不同的结果,和处理方式。按照我们正常的写法,应该是就是构造一个’内容‘接口。例如public interface PersonAnnotationService { public String testPrint();} 接下来我们应该制造很多实现类,区分人和学习内容来根据不同的情况获取不同的原创 2017-10-31 09:49:58 · 7314 阅读 · 0 评论 -
SpringBoot 和 SpringMVC的异常统一处理
SpringBoot 和 SpringMVC的异常统一处理,继承重写SimpleMappingExceptionResolver,完成注解@ControllerAdvice ,@ExceptionHandler原创 2017-11-02 17:38:07 · 1751 阅读 · 0 评论 -
多线程代理IP池
有的时候需要对某些免费接口进行访问,或者数据爬虫时,为了防止某段时间大规模访问,对方封IP的这种情况。在自己进行访问时最好可以尝试换IP来访问。那么换IP怎么访问,这就牵扯到简单的还是自己动手解决。简单的情况下,就是自己买免费的IP,去接接口获取。或者手动配置。缺点是,买免费要钱,在不是公司级业务的情况下,花钱有点冤大头。不买自己百度的话,第一是不够灵活,因为代理ip死亡时间很快,第二是极其麻原创 2017-11-30 10:15:37 · 4252 阅读 · 2 评论 -
java自定义标签-新增xsd
看到了自定义标签的有关,代码,找了些资料完成了一个简单的自定义标签的建立。特来记录下心得体会 关于自定义标签,目前对他的作用的理解是,生成新的xsd文件,制定一个处理规则,在Spring启动处理bean的时候,有关标签的bean会走自己写好的一个方法。 有什么用呢,举几个可能有用的例子。原创 2017-11-16 14:34:26 · 1284 阅读 · 0 评论 -
jdk的动态代理及为什么需要接口
动态代理有关,无非是使用JDK动态代理,和cglib动态代理。一直不待明白的是为什么,jdk的动态代理需要接口才能实现,这也是其短板和令人诟病的地方。很多的博文说的很复杂,代码一大堆,没有太明白。手打了一下,参考了一些优秀的博文,在这里给自己做个总结。首先,动态代理是个挺有用的东西,常见的就是javaAOP的有关,主要的作用是是在一个方法使用前后,能进行别的处理。比如吧,aop所说的,面向切面...原创 2017-12-01 14:38:30 · 18498 阅读 · 16 评论 -
JAVA List循环队列删除元素/List.remove
想试一下List.remove的方法。看博客的时候看到有个博主说, “循环删除list中多个元素的,应该使用迭代器iterator方式。”原创 2017-12-20 11:11:30 · 2853 阅读 · 0 评论 -
ThreadLocal线程本地变量的超详细解析
前段时间面试都遇到了有关ThreadLocal有关的问题,今天正好写到了多线程,干脆对ThreadLocal进行一个从简单理解,到使用,到源码理解的学习和分析。 1.ThreadLocal是什么 ThreadLocal正如原创 2017-12-22 14:24:31 · 6484 阅读 · 1 评论 -
tomcat调优策略
偶然听到朋友讲到面试遇到了Tomcat调优有关的问题。这块和虚拟机我也是没有看过的,既然也用了tomcat这么久,是应该了解一下调优的有关知识了。come on!~ tomcat调优策略: 第一点:内存优化 简单的来说,我们日常使用的Tomcat也是在jvm上运行的,所以,他也会有自己的内存大小,就像eclipse启动的时候也可以原创 2018-01-03 13:51:53 · 1209 阅读 · 0 评论 -
Http和Https的区别/握手协议/单双认证
HTTP与HTTPS有什么区别?HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要原创 2018-01-22 11:11:56 · 1517 阅读 · 0 评论 -
分布式服务下的事务控制问题
前两天被问到一个问题:在公司中,有不同的组和服务接口。我们正常的事务规则是是如果出现问题的话,对该Service下的方法进行事务处理,回滚什么的。但是如果是一个Service调用了很多的服务,如dubbo服务。那就出问题了。甚至有些dubbo本身就套了更多的Dubbo服务。比如吧,一个转钱的服务,先从A服务那边调取用户'jack'的信息,如果钱够的话,就从jack的账户提取500块钱,然后如果原创 2018-01-16 18:12:58 · 414 阅读 · 0 评论