- 博客(83)
- 收藏
- 关注
原创 Spring 基于注解的接口AOP实现——Mapper实例
Spring的AOP默认是基于实现做切面的,如果注解放到接口上,无法生效,比如Mapper层接口注解。可以通过MethodInterceptor、AbstractBeanFactoryPointcutAdvisor来实现。public XXXAdvisor extends AbstractBeanFactoryPointCutAdvisor{ @Override public Pointcut getPointcut(){ return new Annotation
2021-07-07 09:51:35
1414
原创 基于Eureka的分布式微服务优雅停机方案/平滑升级
[业务场景]运维在实操中,通过Eureka的Restfull API标记了某service状态为out_of_status。但是考虑到微服务可能存在执行中的线程,延迟通过kill -9 停止。整个过程中,发现因为Eureka心跳机制,service自动恢复成了UP状态。这就导致其它服务引用了维护中的Provider。他们希望可以寻找到一个比较平滑的升级模式。[思路]问题很直观:因为服务未实际下线,心跳机制自然会恢复为UP。Eureka也正是因为这种机制才能进行服务治理。那么就不能从Eu.
2021-04-28 12:47:31
1058
3
转载 2020-08-18
转载Emoji表情包https://apps.timwhitlock.info/emoji/tables/unicode#block-4-enclosed-characters
2020-08-18 10:47:06
193
原创 Quartz 框架搭建
本文参考了网络资料(均以超链接标注),对于其是否为原创,本文不付任何责任。Quartz 是比较常用的任务调度框架,关于基础使用请参考Documentation。本文主要就实际运用中涉及到的动态加载和集群配置做介绍。动态任务动态任务的核心思路是将XML配置转换为管理类统一管理。quartz-config.xml 如下 <bean id="schedulerBeanFact...
2018-09-04 19:39:45
492
转载 几种集中式管理框架比较
最近因为项目管理上的需要,调研集中式管理工具。百度Disconf、携程Apollo、阿里ACM ,三者都可以满足集中式配置,并提供监听,实时改变配置。关于3个框架的使用以及搭建请自行参考官方API文档,不再叙述。对比了3个框架的配置,如下。disconf 依赖比较多,比如zookeeper等都需要提供环境;apollo依赖较少,只有一个db。阿波罗在多环境配置时,需要搭建多个con...
2018-08-29 14:10:48
2438
原创 流水序号设计
[需求]订单附带一个序列号:序列号为当月第x单********************这个需求看似很简单,但随着系统复杂性以及并发量的增加,实现并不简单。探究几种场景。[无并发压力下单系统]这种场景最简单,也是最容易误导开发以此为基础进行模型设计。此种系统下,甚至可以采取数据库层面的查询、约束等进行序列号生成。如果考虑到DB IO效率低,可以考虑放在内存,只要维护好
2017-09-07 22:50:33
972
原创 基于Spring HandlerInterceptor和Google RateLimiter 的简单throttling
spring mvc throttling
2016-06-24 14:28:34
1696
转载 log4j、logback汇总
log4j 参考 配置Log4j(很详细) 和 Log4j按级别输出到不同文件。主要是重写 DailyRollingFileAppender
2016-04-13 16:54:47
618
转载 -Djava.ext.dirs和-cp
参考资料Be careful when setting java.ext.dirs to include your JARsCLASSPATH vs java.ext.dirsspec本人对jvm并没有研究,从结果来看,两者的区别在于-Djava.ext.dirs会覆盖JAVA本身的ext设置。一般情况下程序运行并无差异,因为可以看到ext目录下也就几个ja
2015-12-02 13:48:13
4663
转载 avoid duplicate submission 结合spring-mvc的防重复提交
采用Annotation和Interceptor方式提供切面拦截,这个技术一直在用,仅是记录一下。注意此种方法只适用于页面支持刷新提交的流程,如果是打开静态页添加数据进行多次提交的,需要扩展处理token问题。首先提供一个自定义的注释 AvoidDuplicateSubmission。注释提供两个方法:needSaveToken() 和 needRemoveToken()。 从字面就可以...
2015-11-04 11:03:52
3432
原创 MyEclipse多Maven module导入问题以及思路分享
今天组内一个使用MyEclipse的同事碰到这样一个问题:导入maven module后,项目结构一直不能正常显示。我们的maven项目是通过maven source配置制定项目结构的,所以理论上不应该被IDE约束。其次,该同事反应并不是每个module(module有超过10个)都有这样的问题,删掉pom.xml中的maven插件或者dependency后,有时候会显示正常的目录。以上是
2015-10-26 15:58:09
3101
转载 maven-war-plugin根据环境打包资源
声明:本文参考资料来自互联网J2EE项目在开发时,需要根据不同环境适配资源文件,maven提供了war-plugin这款打包插件,方便完成这个适配。首先配置maven profile,再次不再详述,参见官方文档。demo中,prod的资源依旧放在src/main/resources中,dev、qa资源置于src目录外。可根据实际情况调整。 dev
2015-09-21 10:30:53
3417
原创 Centos7.1.1503中文编码下,tomcat service命令不支持UTF-8
碰到一个特殊的case,使用/etc/init.d/tomcat 命令可以只是中文,只需要tomcat的server.xml 增加URIEncoding=UTF-8即可。但是使用service tomcat 命令却死活不行。暂时没有发现根本原因,解决方案如下脚本增加locale设置export LANG=en_US.UTF-8export LANGUAGE=en_U
2015-08-07 09:55:59
980
原创 Java自定义模板设计
还是首先讲一下需求。一个普通的web form表单提交,根据模板自动生成指定格式的结果。form的优势在格式化数据,使得各属性非常直观的展现出来,用户可以更加简单直观的进行输入。但业务上的最终结果却不可以是form,所以就有了这个需求。需求的本质有点类似el表达式的替换,但是这个表达式模板是动态配置的,而不是常见的xml静态文件。总结一下需求,概括来讲是这样:根据用户的输入,将业务属性填充到实
2015-05-12 09:52:08
4308
原创 org.apache.catalina.LifecycleException: A child container failed during
maven是目前web application的主要依赖解决方案之一。关于maven,不再过多介绍。今天碰到一个maven tomcat plugin deploy/run的问题。问题描述:org.apache.catalina.LifecycleException: A child container failed during这个问题不容易看出原因,因为没有具体指出问题
2015-02-25 09:06:32
30741
2
转载 JIRA rest api 403 forbidden
记录一种原因,用户需要验证码登录了。(比如改了密码)https://answers.atlassian.com/questions/95741/rest-api-2-user-username-demo-always-return-403-forbidden
2015-01-29 16:34:34
3765
4
原创 如何缓解业务需求与系统结构的冲突
互联网软件、系统的发展是为了解决人们日益增长的效率需求。从事软件开发必然会接触到这个话题:以伪装的behavior去满足客户的需求。相信越是庞大复杂的系统,越是有这种设计。举个简答的例子,现在网购平台到处都是,你点击一个购买按钮,其对用户的behavior只是一个提交成功。但背后又有多少需要做的?比如数据备份、分布式数据校验、异常处理等等。一个好的软件,必是一个异常处理强大的系统。因为目前
2015-01-29 14:24:53
1604
原创 2014年终总结
有一段时间没有写点什么了。一个原因是最近的精力并不是主要致力于developing的工作了;另外一个原因是学到的一些知识还没来得急好好整理,无脑的搬运工只是浪费网络资源。好吧,言归正传。时间易逝,从广东回来到尽头也有整整一年了,为自己做个总结,梳理下收获与缺失也是必要的。既然要写,先规划一下文章的结构。Technical SkillDeveloper最在乎的莫过于此了。整体
2014-12-31 11:07:35
654
原创 Spring + Cxf 总结
WebService的定义、教程等网上有很多,不做搬用工,仅仅写一点该段时间调研使用上的总结。在介绍cxf之前,先说说为什么用WebService。我们的需求是为了数据传输,而不是访问,所以ftp、http都是可行的,而且不角色webservice在此处优势很大。但是既然组织觉得尝试webservice,就开始干活。单从Java架构上,网上主要是xFile、Axias和cxf。选择cxf的
2014-12-15 12:53:22
601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人