![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
BullDemonKing等待唐僧的日子
云计算、大数据、信息安全、系统架构、人工智能
展开
-
AMQP-0-9-1中文规范
1 概述1.1 摘要此文档定义了一个网络协议-高级消息队列协议(AMQP), 它使一致的客户端程序可以与一致的消息中间件服务器进行通信.我们面对的是这个领域有经验的技术读者,同时还提供了足够的规范和指南.技术工程师可以根据这些文档,在任何硬件平台上使用各种编程语言来构建遵从该协议的解决方案。1.2 为什么使用AMQP?AMQP在一致性客户端和消息中间件(转载 2017-03-09 14:15:22 · 1350 阅读 · 0 评论 -
java keytool证书工具使用小结
Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)-只包含公钥.JDK中keytoo转载 2018-01-17 14:18:29 · 248 阅读 · 0 评论 -
Log4j MDC使用案例
转自:http://dacoolbaby.iteye.com/blog/2013781Log4j MDC使用案例 Java代码 import java.io.IOException; import java.util.Map; import java.util.UUID; import javax.servlet.Filt转载 2017-08-29 11:23:38 · 2571 阅读 · 0 评论 -
我的编码习惯 - Controller规范
先说说Controller规范,主要的内容是就是接口定义里面的内容,你只要遵循里面的规范,controller就问题不大,除了这些,还有另外的几点:1. 所有函数返回统一的ResultBean/PageResultBean格式原因见我的接口定义这个贴。没有统一格式,AOP无法玩。2. ResultBean/PageResultBean是controller专用的,不允许往后转载 2017-08-29 11:01:19 · 2091 阅读 · 0 评论 -
我的编码习惯 - 接口定义
工作中,少不了要定义各种接口,系统集成要定义接口,前后台掉调用也要定义接口。接口定义一定程度上能反应程序员的编程功底。列举一下工作中我发现大家容易出现的问题:1. 返回格式不统一同一个接口,有时候返回数组,有时候返回单个;成功的时候返回对象,失败的时候返回错误信息字符串。工作中有个系统集成就是这样定义的接口,真是辣眼睛。这个对应代码上,返回的类型是map,json,object,都转载 2017-08-29 10:48:12 · 449 阅读 · 0 评论 -
Twitter-Snowflake,64位自增ID算法详解
Twitter-Snowflake算法产生的背景相当简单,为了满足Twitter每秒上万条消息的请求,每条消息都必须分配一条唯一的id,这些id还需要一些大致的顺序(方便客户端排序),并且在分布式系统中不同机器产生的id必须不同。Snowflake算法核心把时间戳,工作机器id,序列号组合在一起。 除了最高位bit标记为不可用以外,其余三组bit占转载 2017-07-18 08:50:48 · 308 阅读 · 0 评论 -
贫血模式or领域模式
一个例子我要举的是一个银行转帐的例子,又是一个被用滥了的例子。但即使这个例子也不是自己想出来的,而是剽窃的>中的例子,原谅我可怜的想像力。当钱从一个帐户转到另一个帐户时,转帐的金额不能超过第一个帐户的存款余额,余额总数不能变,钱只是从一个账户流向另一个帐户,因此它们必须在一个事务内完成,每次事务成功完成都要记录此次转帐事务,这是所有的规则。 贫血模型转载 2017-06-13 11:26:49 · 2861 阅读 · 1 评论 -
充血模式和贫血模式
充血模式和贫血模式 贫血模型:是指领域对象里只有get和set方法,或者包含少量的CRUD方法,所有的业务逻辑都不包含在内而是放在Business Logic层。 优点是系统的层次结构清楚,各层之间单向依赖,Client->(Business Facade)->Business Logic->Data Access(ADO.NET)。当然Business Logic是依赖转载 2017-06-13 11:13:37 · 3865 阅读 · 0 评论 -
JVM中可生成的最大Thread数量
最近想测试下Openfire下的最大并发数,需要开大量线程来模拟客户端。对于一个JVM实例到底能开多少个线程一直心存疑惑,所以打算实际测试下,简单google了把,找到影响线程数量的因素有下面几个: -Xmsintial java heap size-Xmxmaximum java heap size-Xs转载 2017-07-04 11:09:37 · 292 阅读 · 0 评论 -
领域驱动设计系列文章(3)——有选择性的使用领域驱动设计
领域驱动设计系列文章(3)——有选择性的使用领域驱动设计 本系列的第一篇博文抛砖引玉,大谈领域驱动设计的优势,这里笔者还是希望以客观的态度,谈谈领域驱动设计的缺点及其不适合使用的场景,以让读者可以有选择性的使用领域驱动设计。 我们知道,没有最好,只有最合适,设计也是一样。因此,所谓设计,就是以你和你的团队的知识、经验和智慧,全面充分的考虑各种内外因素后,在你们的设计方转载 2017-06-13 10:04:07 · 482 阅读 · 0 评论 -
领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章开始,笔者将会结合自己的实际经验,谈及领域驱动设计的应用。本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:转载 2017-06-13 10:02:40 · 773 阅读 · 0 评论 -
领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力
领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力 曾经参与过系统维护或是在现有系统中进行迭代开发的软件工程师们,你们是否有过这样的痛苦经历:当需要修改一个Bug的时候,面对一个类中成百上千行的代码,没有注释,千奇百怪的方法和变量名字,层层嵌套的方法调用,混乱不堪的结构,不要说准确找到Bug所在的位置,就是要清晰知道一段代码究竟是做了什么也非常困难,最终,改对了转载 2017-06-13 10:01:16 · 6174 阅读 · 0 评论 -
非常有用的Java代码片段(持续更新......)
1. 通过Thread方法获得当前方法,当前文件名,当前类名String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();String fileName = Thread.currentThread().getStackTrace()[1].getFileName();String cla原创 2017-03-22 14:24:15 · 324 阅读 · 0 评论 -
一网打尽 @ExceptionHandler、HandlerExceptionResolver、@controlleradvice 三兄弟!
声明:博文转自:https://www.cnblogs.com/xiang--liu/p/11422504.html把 @ExceptionHandler、HandlerExceptionResolver、@controlleradvice 三兄弟放在一起来写更有比较性。这三个东西都是用来处理异常的,但是它们使用的场景都不一样。看本文给你详细的讲解,再也不怕面试被问到了!这三个注解都是来自...转载 2019-09-25 16:02:26 · 882 阅读 · 0 评论