自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 记一次dubbo调用的奇怪异常SOF

记一次dubbo调用的奇怪异常以前更多的使用公司内部的框架,对dubbo不怎么熟悉。服务升级时,dubbo调用偶尔会产生调用失败,Caused by:SOF异常经过多次和服务方沟通,服务方均表示服务方未发现任何异常,在服务方日志中也确实没有发现任何异常,排查时就先排除了服务方可能。根据Caused by:SOF FastJson异常,首先想到的是fastjson的循环引用导致的SOF bug,但排查发现Fastjson是1.2.69,又检查了服务方的fastjosn是1.2.73,考虑是fa

2021-04-22 14:06:49 848 1

原创 内存不足导致的耗时增大

内存不足导致的耗时增大给项目添加新功能,功能比较简单,就是对数据做打分过滤等操作,上线后发现CPU使用率明显上升,线程cpu使用率不均衡,有线程cpu使用率会达到100%top -H命令查看到的根据日志发现,服务耗时明显增大,由于是对每一条数据进行操作,数据量每天在千万以上,开始考虑是CPU资源不足导致,申请增加CPU资源。增加以后,监控发现,CPU消耗和服务耗时没有明显改善。...

2018-11-28 18:40:59 662

原创 Java编码习惯

最近换了新的工作,在阅读前辈写的代码过程中(历史原因),真的是各种吐槽,加上自己阅读的一些编码书籍,结合自己积累的一些编码习惯,总结了一下,方便自己回顾。参考资料:编写可读代码的艺术(非常不错的书,告诉你如何判断代码的好坏) Robust Java 中文版(java异常和测试)58同城Java编码规范阿里巴巴Java开发手册 代码规范需要从读者的角度去考虑。常用格式...

2018-09-27 16:26:00 1117

转载 高并发下的幂等策略分析

转载至:http://www.guokr.com/article/47868/?f=wx&page=2双十一,零点刚开始,小明就迫不及待地点击提交订单按钮,1秒,2秒,3秒,没反应,小明有点心慌,又快速地点击了两下,提示下单成功。随后小明到我的订单列表中一看,发现有三个相同的订单,小明一脸黑线。什么是幂等性HTTP/1.1中对幂等性的定义是:Methods can also have th...

2018-06-01 18:09:18 412

原创 Spring定时任务Scheduled在linux tomcat服务器上总是执行两次(tomcat配置)

Spring定时任务Scheduled在linux tomcat服务器上总是执行两次。在使用Spring定时任务Scheduled的时候,在本地Windows系统上,执行正常,但是在Linux生产环境上,总是启动两次,除了借助于redis以及线程安全来处理,使其只能执行一次意外,发现原因是tomcat的配置问题。 Tomcat server.xml配置  <!--

2018-03-21 18:15:57 2262 1

原创 Spring MVC中实现不同环境的配置

Spring MVC中实现不同环境的配置 在项目开发中,存在开发环境和生产环境,一些常用的配置,比如数据库,redis,properties文件中的一些变量等等,在开发环境和生产环境中,都会有一些差异,每次提交代码的时候,如果提交测试环境,则运维人员版本更新时总是要修改配置,危险性比较大,如果提交生产环境,则每次更新后,都要修改配置,才能本地启动,一些常用的思路都是提供多个配置文件,依据系

2018-03-16 11:38:11 3458

原创 Java中的日志框架

java中,比较常见的日志框架有slf4j log4j logback 以及common-logging。  slf4j:全称为Simple Logging Facade for JAVA,java简单日志门面。是对不同日志框架提供的一个门面封装,实现了日志框架一些通用的api.而log4j logback是具体实现了的日志框架,slf4j提供了日志的统一接口,而不用去考虑日志的具体实现

2018-03-16 10:51:53 400

转载 HTTP的REST服务

本文转载自http://blog.csdn.net/adparking/article/details/52278794REST简介    一说到REST,我想大家的第一反应就是"啊,就是那种前后台通信方式。"但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则。  在您将看到的这一篇文章中,我们将对REST,尤其是基于H...

2018-02-09 16:35:15 699

原创 Java transient 关键字

Java transient 关键字 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。在Java中,对象的序列化可以通过实现两种接口来实现,若实现的是Serializable接口,则所有的序列

2016-09-03 09:57:46 554

转载 java /替换 Unexpected internal error near index 1

代码:[html] view plain copy String str="a\\c";  //出现异常,Unexpected internal error near index 1  //System.out.println(str.replaceAll("\\", "c"));            //以下三种都正确  Sy

2016-06-28 14:36:51 1983

原创 ftpClient ,httpClient

最近项目需要实现FTP上传、下载功能以及http接口,采用了Apache Commons Net API。代码很快就完成了,但由于对相关API使用场景不是很熟悉,走了一些弯路,抽一点时间做一下总结。  出现过FTP response 421 received.Server closed connection 异常,原因是加了ftpClient.enterLocalPassiveM

2016-06-23 08:47:35 3131 2

原创 net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to xxx

net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to xxx在操作json的数据格式的时候,如果没有指明数据类型,那么只能是基本类型或者是String类型,不能出现复杂数据类型。for(Map map : datas){            String gw_id = map.get("GW_ID").toString();   

2016-06-18 14:48:44 17294 2

原创 Sql索引使用

sql查询中,因为我们键盘输入的总是字符型,遇到不同的数据类型,比较的时候,总是要把数据类型转换一致,常用的思路有两种(oracle为例): 新建表  td_rewardworkf,表结构如图: 表数据百万左右。 1,将原数据表的列 转换成 字符类型,然后和 具体条件比较,即:to_char(oprtime,'yyyymm')>'201605

2016-06-06 18:13:52 762

原创 Tomcat线程

可以通过调节并发线程数来对tomcat自身进行优化。tomcat中service.xml配置如下:        Executor name="tomcatThreadPool" namePrefix="catalina-exec-"         maxThreads="150" minSpareThreads="4"/>    -->

2016-05-30 15:23:32 672

转载 Servlet 单例多线程

Servlet 单例多线程Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的:1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例);2.容器初始化化Servlet主要就是读取配置文件(例如tomcat,可以通过server.xml的设置线程池中线程数目,初始化线程池通

2016-05-27 17:23:24 358

原创 include与jsp:include区别

include与jsp:include区别 我们都知道在jsp中include有两种形式,分别是   前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。下面一起来看看吧。 通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include。具体在哪些时候用,哪些时候用.这种形式。首先要明白

2016-05-27 14:56:49 352

原创 ORACLE 多表关联 UPDATE 语句

ORACLE 多表关联 UPDATE 语句 两表(多表)关联update -- 仅在where字句中的连接 --直接赋值update customers a -- 使用别名set customer_type='01' where exists (select 1from tmp_cust_city bwhere b.customer_id=a.custome

2016-05-26 21:37:52 5954

转载 依赖、关联、聚合、组合、继承、实现

本文转载自;http://blog.csdn.net/zhengzhb/article/details/71872781. 依赖(Dependence)         依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中

2016-05-23 23:00:47 555

转载 Java中的Set与hashCode

我们知道Java中的Collection分为List和Set。List中的元素是有序和可重复的,而Set中的元素无序且不可重复。由于Set中的元素是不可重复的,在每次向一个Set中插入新的元素时,如果没有hashCode,就需要遍历整个集合检查是否已经存在该元素。这样会使Set的效率非常低下。使用哈希算法可以提高从元素集合中查找一个元素的效率。根据集合元素的hashCo

2016-05-11 21:00:37 1420

转载 java数据结构-HashMap

转载自:http://www.blogjava.net/dongbule/archive/2011/02/15/344387.html一直以来似乎都有一个错觉,认为map跟其他的集合类一样继承自Collection,其实不然,Map和Collection在结构层次上是没有任何关系的,通过查看源码可以发现map所有操作都是基于key-value对,而不是单独的元素。下面以Hash

2016-05-11 20:25:44 431

转载 深入理解Java中的Map

Map中的key是如何确保重复验证的快速性及key值的唯一性呢?巧妙地利用了Hash算法来实现并达到重复验证的快速性及key值的唯一性。那么Hash又是什么?Hash算法又称为散列算法,其实Hash算法产生的目的很单纯,其发明的目的是提高海量数据的查找速度。举个实例更能说明问题:假设数据表中有N个无序的字符串(例如:中文人名),给你一个字符串,请迅速找到它在数据表中的序号。

2016-05-11 19:44:34 2575

原创 常用的sql语句优化

常用的sql语句优化  Order by任何在Order by语句的非索引项或者有计算表达式都将降低查询速度。 应尽量避免在 where 子句中使用!= Not 操作符 当ORACLE"遇到"NOT,他就会停止使用索引转而执行全表扫描,不支持索引。可以改为 value这种支持索引的方式。 多表连接查询 ORACLE 的解析器按

2016-05-10 21:13:46 1702

原创 Wsdl文件读取方式

Wsdl文件读取方式WSDL文档可以分为两部分。顶部分由抽象定义组成,而底部分则由具体描述组成。抽象部分以独立于平台和语言的方式定义SOAP消息,它们并不包含任何随机器或语言而变的元素。 WSDL文档包含下列元素 Types      抽象定义 ,独立与机器和语言的类型定义 Messages 包括函数参数(输入与输出分开)或文档描述 ,可以看做是对函数参数和输出

2016-05-10 15:16:06 3850

原创 struts2默认无法处理以.do后缀的请求

struts2处理.do后缀的请求         filter>                   filter-name>Struts2filterfilter-name>                   filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilt

2016-05-04 14:47:58 1594

原创 Class.getGenericSuperclass

Class.getGenericSuperclassgetGenericSuperclass()方法用于获得实例类的带有泛型的直接父类,和getSuperclass()用在不同的情景。getClass().getGenericSuperclass()返回的是java.lang.refelct.Type类型,可以将其转换成ParameterizedType。(Parameteri

2016-04-25 16:59:51 2189

转载 Spring单例与线程安全小结

Spring单例模式与线程安全 Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式,这是在多线程开发的时候要尤其注意的地方。 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。当多用户同时请求一个服务时,容器会给每一个请求分配一个线程,这是多个线程会并发执行该请求多

2016-04-14 10:48:34 651

原创 Spring向Servlet中注入实例

Spring向Servlet中注入实例开发Http接口的过程中,发现在Servlet中,无论是用spring 的什么注解,都无法正常的向Servlet中注入实例,但是在方法中通过ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(this.getServletContext()

2016-03-29 09:30:19 3110

原创 $.ajax contenType是appliation/json的时候,spring mvc后台无法接受data参数

$.ajax contenType是appliation/json的时候,spring mvc后台无法接受data参数 做Redis监控工具的时候,发现$.ajax contenType是appliation/json的时候,在后台用spring mvc的@Requestparam注解接收参数,始终接收不到。 前台代码:$.ajax({                  

2016-03-10 21:43:29 14017 1

原创 $.ajax()post方式请求参数无法传递,request.getParameter()无法获取

$.ajax()post方式请求参数无法传递,request.getParameter()无法获取 在前台页面中$.ajax({                     url : "${ctx}/rediscluster/delete.do",                     data : {"rname":rname},

2016-03-10 21:43:00 51144 2

原创 jQuery ajax返回parsererror

调用jQuery ajax方法,返回状态码200,但总是不跳入success,而是进入error函数,并且返回parsererror 例如: function dodelete() {        var rname = $(":checked").val();        bootbox.confirm("确定要删除吗", function(result) { 

2016-03-09 12:32:59 1027

原创 windows下mongodb安装

windows下mongodb安装 下载地址:http://www.mongodb.org/downloads 如果是msi文件,直接打开,下一步安装。我安装在D:\Program Files\MongoDB中  创建文件夹F:\Mongodb\data,F:\Mongodb\logs。分别用来安装db和日志文件。  运行cmd.exe进入dos命令界面,c

2016-02-22 15:14:28 338

原创 常见的编码格式/txt文件乱码

常见的编码格式 比较常见的编码格式大体上可以分为ASCII编码和Unicode编码。ASCII编码ASCII编码:是出现最早的编码格式。属于单字节编码ASCII码使用7bit表示一个字符,共128个字符。是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。 ANSI编码:是在ASCII编码的基础上拓展的一中编码。将ASCII

2016-01-29 09:16:07 12899

转载 html select标签使用

本文转自http://blog.csdn.net/dy_smile/article/details/7356564style="width:180px" onclick='checkBofore()'>       动态删除select中的所有options:          document.getElementById("ddlResourceType").o

2016-01-20 17:23:32 2221

原创 nested exception is java.lang.NoSuchFieldError: TRACE

nested exception is java.lang.NoSuchFieldError: TRACE可能是log4j冲突。看看你的tomcat下是不是有两个log4j的包,我在MyEclipse工程里看只有一个,怎么找也只有一个log4j-1.2.16,不知道怎么tomcat下又蹦出来一个log4j-1.2.11。。如果你用的是MyEclipse,

2016-01-12 17:17:57 2968

原创 SpringMVC,Mybatis,Spring

百度定义: 声明式事务:声明式事务(declarative transaction management)是Spring提供的对程序事务管理的方式之一。 Spring的声明式事务顾名思义就是采用声明的方式来处理事务。这里所说的声明,就是指在配置文件中申明。用在Spring配置文件中声明式的处理事务来代替代码式的处理事务。这样的好处是,事务管理不侵入开发的组件,具体来说,业务逻辑对象就不会意

2016-01-12 15:15:12 417

原创 使用Nexus来搭建本地的Maven服务器

使用Nexus来搭建本地的Maven服务器 . 在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的。另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新。可以通过搭建公司内部的Maven服务器,将第三方和内部的依赖统一管理。       这里使用Nexus来搭建本地的Maven服务器,过程比较简单。

2016-01-11 15:51:49 1613

原创 Mybatis与Spring整合事物

Mybatis与Spring整合事物spring支持编程式事务管理和声明式事务管理两种方式。编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始

2016-01-07 13:53:49 620

原创 Spring声明式事物

Spring支持对不同方式的事物支持 Spring声明式事物   声明式事务管理也有两种常用的方式,一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解。显然基于注解的方式更简单易用,更清爽。  aop方式: org.springframework.tranaction.PlatformTransactionM

2016-01-06 17:44:45 749

原创 pageContext/ServletContext/ApplicationContext/ServletActionContext

pageContext/ServletContext/ApplicationContext/ServletActionContext pageContext pageContext对象是javax.servlet.jsp.PageContext实例,pageContext对象 这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据。使用pageContext可以访

2016-01-05 17:32:24 1508

原创 Spring MVC配置及HandlerMapping/HandlerAdapter接口

Spring MVC配置及HandlerMapping/HandlerAdapter接口   HandlerMapping接口 -- 处理请求的映射 HandlerMapping接口的实现类: SimpleUrlHandlerMapping  通过配置文件,把一个URL映射到ControllerDefaultAnnotationHandlerMapping  通

2016-01-05 16:41:30 5958

Jenkins部署

深度学习Jenkins部署,注意细节,养成良好的编码习惯。善用工具。

2018-03-08

空空如也

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

TA关注的人

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