摘要:日常开发,还是要关注一下程序设计,多考虑更好的实现方式,磨刀不误砍柴工。
        
阅读全文
 
    
        
        
摘要:验证数据唯一性,也就是数据的判[fáng]重[chóng],通常应该由程序来控制。靠数据库唯一索引只能是兜底方案。一旦完全靠数据库来控制,那么,数据库乃至应用服务的性能开销会很大。
        
阅读全文
 
    
        
        
摘要:从以上RabbitListener#queues()的javadoc内容可以看出来如下三点信息,其中第2条指明了队列必须存在:
queues的取值可以是常量(如 MessageQueueConstant.USER_QUEUE),可以是属性占位符("#{configToolkitProp['zk.address']}"),可以是SpEL表达式(如"${spring.rabbitmq.mq-name}"、"#{userQueue.name}")
所指定的队列必须存在,或者是ApplicationContext里的一个具有org.springframework.amqp.rabbit.core.RabbitAdmin的bean。
queues()与bindings()和queuesToDeclare()是互斥的。指定了queues(),就不能再指定bindings()和queuesToDeclare()了。
        
阅读全文
 
    
        
        
摘要:在java中,虚拟机会为每个任务的处理分配一个线程, 在这个线程里,每次调用一个方法,都会将本次方法调用的栈桢压入虚拟机栈里,这个栈桢里保存着方法内部的局部变量和其他信息。 不过呢,每个线程的虚拟机栈的大小是固定的,默认为1MB(上面的1024)。
既然一个线程的虚拟机栈内存大小是有限的,那么假设不停的调用各种方法,对应的栈桢不停的压入栈中。当这些大量的栈桢消耗完毕这个1MB的线程栈内存,最终就会导致出现栈内存溢出的情况。
        
阅读全文
 
    
        
        
摘要:目前在进行的Boss开工改版,需求版本比较大,涉及到灵活用工系统的全业务包括企业入网及配置、企业结算、充值分账、签约、下发、发票开具等各个环节,同时要兼容现网BOSS开工系统里存量客户和交易不受影响。虽然拆分成3次小迭代,不过每次迭代的开发任务也同样不容小觑。 因此,有必要站在更高更全面的角度来俯视
        
阅读全文
 
    
        
        
摘要:诸多原因,我们的程序往往解释不了它自己。 即使程序可以解释自己,那么,哪里会间接使用它?它跟哪里有间接关系? 这些就用到javadoc中的@see、@link了。这两个注解实现在javadoc注释里链接代码,方便我们追溯程序。 经常看java源码的同学可能注意到了,java源码里有很多的@see、@
        
阅读全文
 
    
        
        
摘要:2021-5-7下午,优付(SSM框架的老项目)商户站点无法访问,页面报500。 运维紧急重启tomcat并删了一些临时文件,故障暂时得到解决。 造成此故障的原因有二:一是IO操作过于频繁,二是磁盘空间不足。 如下是log文件记录的异常: 2021-05-07 17:51:38.276 [ERROR
        
阅读全文
 
    
        
        
摘要:诸多原因,我们的程序往往不能解释其本身,再者,我们也不能苛求调用者读(懂)我们的程序逻辑。所以,我们需要给代码添加注释。好的代码注释规范是不可或缺的,尤其是要给类和方法添加注释。
        
阅读全文
 
    
        
        
摘要:java8已经摈弃了Perm的配置,不能再配置Perm永久代参数。而是引入了一个新的概念Metaspace。
        
阅读全文
 
    
        
        
摘要:如下代码,FastFileStorageClient对象取自fastdfs-client-1.26.5.jar的接口com.github.tobato.fastdfs.service.FastFileStorageClient。 代码中上传图片调用的fastdfs的api是 StorePath up
        
阅读全文
 
    
        
        
摘要:如果本地调试,那么,会出现在调试器控制台里;
如果是spring项目tomcat容器部署,那么,会在tomcat下logs/catalina.yyyy-MM-dd.out里;
如果不是部署在tomcat下,比如springboot项目,那么,就要看启动脚本了。
        
阅读全文
 
    
        
        
摘要:【异常的诞生】 周五下午接到反馈,说客户向我们系统发起API签约失败。立即查优付trans-business日志,在对签约log进行链路追踪时,发现如下异常。在往文件服务器保存用户证照图片时,fastdfs出现异常。 2021-02-08 16:05:24.483 [ERROR] [clientBu
        
阅读全文
 
    
        
        
摘要:先看如下交互效果。 这是一个订单审核页面,通过勾选CheckBox列的checkbox选中某些行后,点击操作区“批量审核”按钮弹出审核窗口,在弹窗里审核完成,即点击“通过”或“拒绝”后,关闭弹窗,刷新订单审核页面,同时,取消此前选中的checkBox。 接下来说实现方式。 如下是页面结构。父窗体是T
        
阅读全文
 
    
        
        
摘要:首先,要正确理解面向对象的继承特性,派生类继承的是基类的非静态成员。 也就是说,静态的executorService是不会被继承的;  其次,再说static,由static修饰的静态成员,是容器启动过程中在初始化所在类时,就被实例化并装载到内存里了。
        
阅读全文
 
    
        
        
摘要:为什么会出现这样的异常呢?
这通常发生在系统实体类调整的时候,或,系统程序结构发生变化的时候。
        
阅读全文
 
    
        
        
摘要:rpcapi虽然可以像程序内部api一样,支持java各种数据类型,可以像调用程序内部api一样调用rpcapi。不过,所不同的是,rpcapi应该处理各种可能的异常情况,而不是抛出异常。这使得rpcapi与restapi一样,不能只是返回数据(资源),而应该对可能出现的异常情况进行判断,比如参数合法性,数据是否存在,数据状态,程序异常,等等,当没有异常情况时,才返回所需数据(资源)。因此,就有了本文下文说的Result
        
阅读全文
 
    
        
        
摘要:我们在写程序时,格式化时间是家常便饭。
我们知道,通常的格式有yyyy-MM-dd HH:mm:ss。
那么毫秒呢?是sss还是SSS?
        
阅读全文
 
    
        
        
摘要:优付公众号上的自由职业者签约——用户关注我司公众号,访问公众号里的自由职业者签约H5,在这个H5页面上完成自由职业者签约。 程序实现逻辑是,页面通过微信公众号静默授权方式获取openId后,携带openId调用后端“获取自由职业者信息”接口。 后端程序是SSM框架:SohoSignControlle
        
阅读全文
 
    
        
        
摘要:今天上线。同时上线两个系统服务。这两个服务之间通过http接口调用。 找运维小哥更新了好几版。 我从xshell里忽然看到有http请求502异常。 502是网关异常,通常是由nginx返回(使用nginx反向代理的情况),见下面截图。 告诉小组内后,大家赶紧排查。 找到配置的url后,用postm
        
阅读全文