
20011_Java
文章平均质量分 86
一步一个脚印
很普通的我.
展开
-
整理Spring Boot单元测试Around多次执行问题
106_整理Spring Boot单元测试Around多次执行问题场景使用Spring AOP机制定义实现公共日志处理服务,单元测试过程中发现日志被重复打印。分析从业务日志处理服务开始断点调试AOP处理逻辑,确认业务日志处理逻辑的确会被执行两次,此处封装的拦截器实例主要责任是建立切入点、连接点、目标实例、通知的关联关系,构造拦截器匹配实例组并依次执行触发通知逻辑。可原创 2018-02-04 22:02:24 · 3843 阅读 · 0 评论 -
Java Logging 学习
流程图图示1 Both Logger and Handlers may use logging Levels and (optionally) Filters to decide if they are interested in a particular LogRecord.A Handler can (optionally) use a Form原创 2011-12-29 09:36:17 · 881 阅读 · 0 评论 -
Java线程_05
被替换掉的同步继承体系结构下父类的某个声明为同步的方法是可以被更加具体的子类覆盖并声明为非同步。示例/** * 父类的synchronized方法可以在子类中改变为非synchronized方法 * @author WangYanCheng * @version 2012-11-12 */public class SynExtends { public s原创 2012-11-13 15:24:45 · 1084 阅读 · 0 评论 -
Java线程_04
线程与Java SwingJava Swing非线程安全多线程情况下访问Swing对象必须要遵守特殊的规则(保证只从单一线程来访问Swing对象)。Swing程序会有多个线程,其中事件派发线程负责对所有Swing对象的访问和对象状态修改,保持所有对Swing对象的访问都被事件派发线程发出是排查多线程问题非常重要的关注点。例外和规则未呈现的Swing对象可被任何的thread原创 2012-10-31 23:19:42 · 1408 阅读 · 0 评论 -
Java综合_1
FileDescriptor思想FileDescriptor(FD)来自POSIX Operating System,FileDescriptor是表示文件访问的抽象标识。In POSIX, a file descriptor is aninteger, specifically of theC type int. There are three standard POSIX原创 2013-04-22 22:35:21 · 1254 阅读 · 0 评论 -
批量压缩js、css文件脚本(使用Ant构建)
使用Ant构建批量压缩js、css文件使用Ant批量压缩js、css文件2010 年 01 月 27 日提供了一个ant脚本,它主要用于批量压缩批定目录下的js、css文件,此ant脚本使用到了 YUI Compressor、antcontrib .Ant Contrib主要使用它所提供的foreach、propertyregex这两个target原创 2010-01-27 20:25:00 · 2439 阅读 · 0 评论 -
JMS的学习总结Ⅰ
JMS的学习总结ⅠJMS的概念直观的理解就是两方子系统通过一个约定的中间系统和一套约定的规则实现数据通信。JMS就是这种场景的一个解决方案,它定义了两边子系统与中间系统的通信协议规则,基于这个规则就分出了一些JMS的概念:JMS客户端,直观的理解就是基于Java体系下的系统非JMS客户端,这里直观的理解就是非Java体系下的异构系统JMS消息,由JMS客户端发给JMS服务的原创 2012-03-26 19:26:58 · 1268 阅读 · 0 评论 -
JMS学习总结Ⅲ
JMS学习总结ⅢJMS体、相、用JMS是一种规范,是标准的产生、发送、接收消息的规范可以基于JMS规范实现多种应用系统通信支持带有安全主题的消息传递、事务型消息、一致性消息、持久性订阅者JMS的一个场景(工厂生产==>备件==>采购) JMS两种通信类型点对点(point-to-point),一个消息只有一个接收者发布/订阅(publ原创 2012-03-26 19:43:46 · 1347 阅读 · 0 评论 -
单元测试小结
单元测试我的理解软件质量保障体系中的一个重要概念,最早发现错误是最节省成本的一种情况。单元测试带给我们程序员的是一种思维方式的改变,我们不仅是功能实现者我们还是使用者单元测试是控制软件质量非常有效的方法,单元测试工程是软件系统后期维护和扩展的基础单元测试代码要比单纯的软件API有用的多站在单元测试的角度“一切都应当产出预计的结果”单元测试的目的提高软件质量原创 2012-09-24 23:25:34 · 2686 阅读 · 0 评论 -
Java线程_03
持有锁的线程释放锁的场景加锁的代码块执行完成加锁的代码块执行过程中出现异常线程终止Object#wait会释放锁不会释放锁sleep()/join()sleep()的目的是让线程暂停指定时间,时间过后线程会继续运行join()的目的是让线程等待指定线程执行完成后,它才开可以运行Thread#interrupt适用与中断处在blocking method状原创 2012-09-30 22:34:06 · 1293 阅读 · 0 评论 -
Java的异常/错误机制
Java的异常/错误机制Javar异常主要有两种类型:受检异常和非受检异常。异常到底如何用?为了什么目的去用?受检异常一般用在API层,要求客户端必须考虑在进行语句调用时必须考虑异常情况,如果出现异常了客户端程序需要依据自身的场景处理异常(记录、向上层抛出、跳转到其它处理策略)。更细致的考虑是记录异常的策略?向上层抛出异常的策略?跳转其它分支的策略?记录异常的策略?原创 2012-11-15 15:23:54 · 1092 阅读 · 0 评论 -
10_Java安全_实践
10_Java安全_实践原创 2013-08-31 22:52:06 · 1189 阅读 · 0 评论 -
Java验证时间段问题
在处理监测数据实时录入时,需要提供当前班次信息{大白班,小夜班,大夜班},班次信息是根据给定时间段进行设定类似{{"8:00","16:00"},{"16:00","00:00"},{"00:00","8:00"}} 处理办法 · 取当前时间、转换验证起始、结束时间进行比较。 相关代码 /** * 时间段测试 * @author WangYanCheng原创 2009-12-04 10:50:00 · 2566 阅读 · 0 评论 -
基于数据库字典或目录视图对数据库对象结构进行比较
基础知识1、Oracle Dictionary Views2、SQLServer目录视图关于Oracle与SQL Server的不同或相同就不整理了,试着用两者完成相同的功能的同时自然就知道两者那些是一致的哪些地方是各自的。当然,要真是非常的了解Oracle与SQL深层次的不同,那么再回过头来看类似查询这样那样数据的工作就显得简单多了。依据需求分析得出Oracle这块需要对表、视图原创 2011-10-18 09:09:13 · 1093 阅读 · 0 评论 -
文件内容匹配
场景有这么个场景,我们需要某个时间点某个应用程序自动遍历和提取一堆文件中的一小部分规则的字符串实现这块baidu了下有很多种解决办法,其实最本质的问题就是查一段字符串在大的字符串(文件流)中是否存在的问题。简单实现原理: 这块我们选择使用正则来处理, 其实这块稍稍麻烦一点的就是正则的编写了,其它代码和平常都一样表达式匹配内容@auth原创 2011-11-03 20:59:47 · 2728 阅读 · 0 评论 -
java.io.IOException: No such file or directory
异常信息java.io.IOException: No such file or directory at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:247) at com.nstc.framework.web.ut原创 2011-11-03 14:04:47 · 15238 阅读 · 0 评论 -
PDA应用系统数据传输
数据传输 PDA数据传输 C#委托回调 事件处理机制原创 2010-12-22 17:28:00 · 5073 阅读 · 0 评论 -
年终总结之电商交易系统
年终用最近整理的几张图来做一下总结,加入创业团队代表着做的事情不再是一小块系统和模块,短、平、快的模式从一开始就注定没有太多的规范、容忍不影响主流程的一些问题、24小时准备起来修问题。知识广度的积累会比深度的积累要多,最终一个结果有可能是啥啥都懂一些、知道、会用,但都不精通。总结创业团队的这一年,付出了很多,技术知识收获的不多,业务知识学到了很多,每天都很有激情,有时会也会低落一下,创业团队让我见原创 2015-12-31 19:51:58 · 759 阅读 · 0 评论 -
attach: handshake failed
attach:handshake failed - received >GET / HTTP/1.1JDWP-Handshake场景协助技术同学调试了一个关于jdwp端口与http服务端口的问题,刚开始收到服务调用的同学说我们预上线服务有问题直接拒绝服务,查服务log发现一堆Debuggerfailed to attach JDWP-Handshake的信息,查服务配置的确开启了jdw原创 2016-08-01 18:35:00 · 13056 阅读 · 0 评论 -
Hessian#UnsafeDeserializer对象反序化后初始化的问题
Hessian#UnsafeDeserializer对象反序化后初始化的问题场景交易系统各子服务分批上线时出现交易失败的报警,log日志发现服务通信实例的Map类型的成员变量未被正确初始化NullpointerException异常,因为多个服务系统间使用hessian通信,各系统使用的业务数据对象版本不一致(如A服务版本是1.0.1调用B服务1.0.5版本)新添加的变量没有初始化,进原创 2016-07-31 08:53:03 · 1327 阅读 · 0 评论 -
Java#Servlet规范#HTTP Protocol Parameters
Java#Servlet规范#HTTP Protocol Parameters场景异构系统服务调用,约定传递xml结构数据,服务逻辑使用getInputStream获取数据并进行逻辑处理,后续由于服务的统一入口逻辑变更增加request parameter操作造成传递的结构数据被安全过滤和转义,进而影响到后续服务逻辑处理。原因服务调用方传递的contentType为appl原创 2016-06-05 11:41:16 · 825 阅读 · 0 评论 -
IPv4地址与整型类型互转_Java_PHP_JavaScript
场景部分PHP系统存储在数据库中的IP地址为ip2long的结果,Java系统需要与之交互,所以我们需要一个支持IP地址转换的工具类。分析1.IPv4地址可转换为一个32位整型的数字,2.单纯移位操作会出现高位符号为负的情况需要转换测试验证JavaPHPJavaScript示例代码package org.ybygjy.util;/原创 2015-08-16 23:16:33 · 2376 阅读 · 0 评论 -
JCIP_4_02_扩展现有安全类
扩展现有安全类场景为现存的线程安全类添加功能(对现存的线程安全类进行功能扩展),有时工程中现存的线程安全类只能支持大部分我们需要的操作,此时就需要在不破坏线程安全性的情况下添加一些新的操作。原创 2014-09-30 23:12:17 · 912 阅读 · 0 评论 -
JCIP_3_01_实践volatile
volatile实践1、volatile变量不会被缓存在寄存器或对其它处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。2、volatile只确保变量的可见性并不确保原子性,加锁机制既可确保可见性又可确保原子性。3、volatile变量对可见性的影响比volatile变量自身的特性更为重要。当线程A首先写入一个volatile变量并且线程B随后读取该变量时,在写入volatile变量之前对A可见的所有变量的值,在B读取了volatile变量后,对B也是可见的。4、语句重原创 2014-08-13 04:15:01 · 1000 阅读 · 0 评论 -
JCIP_4_01_扩展现有安全类_客户端加锁
客户端加锁实践对于类似由Collections.synchronizedList封装的ArrayList这种场景,客户端并不知道同步封装器工厂方法中返回的List对象的具体类型,这时需要对返回的List对象进行扩展,可以考虑只扩展类的功能,但不是扩展类本身,而是将扩展代码放入一个“辅助类”中。该文档记下了在进行辅助类扩展现存线程安全类时,辅助类使用的锁和被扩展的类使用的锁不是同一个,出现了并发问题。所以通过辅助类加锁扩展现存线程安全类实例的功能,需要客户端明确知道被扩展的类实例使用的锁。原创 2014-08-13 05:15:59 · 1325 阅读 · 0 评论 -
JCIP_5_03_Java同步容器
Java同步容器和并发容器同步容器同步容器将所有对容器状态的修改串行化,以实现它们的线程安全性,这种方法的代价是严重降低并发性。当多个线程竞争容器的锁时,吞吐量将严重减低。同步容器类都是线程安全的,但在某些情况下可能需要额外的客户端加锁来保护复合操作,容器上常见的复合操作包括:迭代、跳转以及条件运算。原创 2014-09-30 23:12:39 · 1097 阅读 · 0 评论 -
JCIP_3_对象的共享_笔记总结
JCIP_3_对象的共享_笔记总结多个线程访问共享的可变状态时需要进行正确的管理,可以通过同步来避免多个线程在同一时刻访问相同的数据。同步可以确保以原子的方式执行操作和内存可见性。当一个线程修改了对象状态后其它线程能够看到发生的变化。如何安全地共享和发布对象使其能够被多个线程同时访问?可见性在没有同步的情况下我们无法确保执行读操作的线程能适时地看到其它线程写入的值,为了确保多个线程原创 2015-01-31 20:09:05 · 918 阅读 · 0 评论 -
JCIP_2_线程安全性笔记总结
编写线程安全代码的核心在于对状态访问操作进行管理,特别是对共享的和可变的状态的访问,共享意味着变量可以由多个线程同时访问,而可变则意味着变量的信息在其生命周内是可以发生变化的。原创 2014-09-30 23:13:42 · 934 阅读 · 0 评论 -
JCIP_4_01_扩展现有安全类
场景为现存的线程安全类添加功能(对现存的线程安全类进行功能扩展),有时工程中现存的线程安全类只能支持大部分我们需要的操作,此时就需要在不破坏线程安全性的情况下添加一些新的操作。分析/解决方法1.修改原始类为现存线程安全的类添加一个新的原子操作,最安全的方法是修改原始的类,但是通常无法做到,因为我们可能无法访问或修改类的源代码。要想修改原始的类,就需要理解代码中的同步策略这样增加的功原创 2014-10-07 11:58:29 · 939 阅读 · 0 评论 -
JCIP_5_02_ConcurrentHashMap分段与锁的学习总结
哈希表基础1.哈希表是基于数组的数据结构2.通过对关键字的哈希运算实现元素的快速定位3.哈希表的重点是哈希化,哈希化负责把一个大范围的数字转化成一个小范围的数字4.哈希化过程中会产生值冲突,这种情况有多种办法可以解决(开放地址法、链地址法)4.1.开放地址法,通过在哈希表中寻找一个空位解决冲突问题,寻找空位的方法也有多种(线性探测、二次探测、再哈希)4.原创 2014-08-13 03:32:16 · 2888 阅读 · 1 评论 -
Java线程_01
线程?可被并行执行的指令序列可被操作系统调度处理的最小单元线程也可被理解为轻量的进程通常情况下线程是被包含在进程内一个进程可包含多个线程,常规情况下,这些线程相互之间会共享资源在多核心CPU上线程是的确可以同时运行的,同时运行的线程受核心数量影响在单核CPU上线程是分时运行的,因为足够快我们感觉不到有什么问题线程的一些应用场景处理和执行异步性质的任务,GUI中通常需要单一Pan原创 2012-08-30 00:01:07 · 1807 阅读 · 0 评论 -
JMS的学习总结Ⅱ
JMS的学习总结ⅡJMS消息模型JMS消息模型主要的内容就是详细描述了消息模型的三大要素消息头、消息属性、消息体消息头基础内容的详细描述消息属性内容的详细描述消息的过滤和匹配规则 参考资料http://wenku.baidu.com/view/a192be4e852458fb770b5643.html?from=rec&pos=0&wei原创 2012-03-26 19:42:11 · 1017 阅读 · 0 评论 -
JDBC CLOB\BLOB操作
这几天遇到个数据迁移大字段的问题一直没有时间解决,今天终于有时间解决这个问题。场景SQL Server数据库某张表的数据迁移到Oracle数据库,早期未考虑特殊字段类型的问题,但真正业务应用测试时发现了问题,对应Oracle中该字段内容为空(迁移时忽略了)。需要我们依据主键将SQL Server表中的内容更新到Oracle上来,直接利用JDBC就可以处理此问题。JDBC处理的一些总结原创 2012-08-30 20:13:49 · 7577 阅读 · 1 评论 -
Java调用Oracle存储过程
场景在Oracle里写个存储过程,它的参数有三类IN、OUT、IN OUT,然后在Hibernate的Session上下文中调用存储过程。方法直接JDBC的方式调用存储过程,使用Session#doWork(Work work)。示例创建示例存储过程过程很简单,有几个小点需要注意:一个异常:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小一原创 2012-02-22 17:42:27 · 1887 阅读 · 0 评论 -
Java线程_02
多线程间的资源共享关键词synchronized、sychronized块、并发、automic、Mutex Lock、volatile、锁的作用域、Java对象实例上的锁、static method上的synchronized 锁的语法在类对象实例声明的锁,依据修饰符static可区分单实例拥有的锁和多实例共享的锁,通过使用synchronized标记类的某个方法支持同步,它原创 2012-09-02 13:06:54 · 1426 阅读 · 0 评论 -
Java线程_06_wait/notify/synchronized
wait/notify/synchronized线程等待/通知机制实现了多个线程基于特定条件的通信机制。线程等待/通知机制必须配合线程同步机制避免资源竞争(Race Condition)产生的数据异常。场景一、等待-通知机制细节(为什么需要引入同步机制?)第一个thread验证通信条件未通知需要调用wait()第二个thread改变通信条件第二个thread调用noti原创 2012-11-18 22:56:17 · 1401 阅读 · 0 评论 -
Ibatis#加载和解析SqlMapConfig.xml
Ibatis#加载和解析SqlMapConfig.xmlIBatis的这种XML解析方式很经典,采用类似事件注册/监听(回调)的方式完成文档中各节点的逻辑处理,1、com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser,负责解析处理,是配置文件解析处理的入口类。2、com.ibatis.common.xml.NodeletPars原创 2013-02-27 19:13:11 · 4063 阅读 · 0 评论 -
Java备份Oracle数据库
Java备份Oracle数据库 Java线程、Process、ProcessBuilder2010 年 6 月 20 日文章内容描述了使用Java执行外部Oracle导出命令备份数据库功能的示例,依据此例子进行修改制造一些bug,然后将会对Java外部命令这块会有一个更加清晰的认知(个人观点仅供参考,不许拍砖,哈)小细节 ·试着把innerTh.start()这段原创 2010-06-20 20:51:00 · 8086 阅读 · 1 评论 -
Servlet生命周期
Servlet原创 2011-04-30 22:39:00 · 925 阅读 · 0 评论 -
LDAP ACL(OpenLDAP)
OpenLDAP ACL原创 2011-05-24 17:36:00 · 7113 阅读 · 0 评论