分类:
Java
标签:
annotation
spring mvc
mapping
AbstractHandlerMethodMapping
registerHandlerMethod
映射覆盖
1、背景
用过Spring MVC的都清楚一点,controller中的url mapping是不能重复的,如果重复定义了url,在Spring容器初始化时,将会报出"Ambiguous mapping found. Cannot map *** There is already ** mapped."的错误。追寻源码,mapping的建立可以追溯到spring-webmvc.jar包AbstractHandlerMethodMapping中的registerHandlerMethod方法:
protected void registerHandlerMethod(Object handler, Method method, T mapping) {
HandlerMethod newHandlerMethod = createHandlerMethod(handler, method);
HandlerMe
......
分类:
Java
数据库
案例
标签:
数据同步
annotation
多数据源
多事务
动态切换
AOP
反射
模型转换
AbstractRoutingDataSource
PlatformTransactionManager
本文主要可以解决以下几个问题:
Spring如何配置多数据源、多事务,以及如何动态切换。
Spring AOP机制的运用,以及对同一个切面(Joint Point)多个处理方法(Advice)执行顺序的设置,即AOP的Order的设定。
自定义注解Annotation的实现以及使用。
使用Java反射机制配合Annotation实现异构模型之间的自动转换。
分类:
Java
案例
标签:
网站配置
annotation
1、网站配置:
一个网站都有很多配置选项,如笔者的博客里面就有基本配置、阅读配置、评论配置等:
有了这些配置管理功能,我们在开发时就不需要硬编码,可以实现在线修改配置选项,不需要重启服务。这是一个网站很常见的做法。
2、简单实现:
一般来说,实现这个配置管理很简单,建立一个配置实体类,映射数据库中的一个表,无非就是对这个实体实现增删改查。后期如果要修改,比如增加了一个配置选项,那就修改实体类,增加属性,增加数据库字段,修改页面,可能要修改对应的合法性验证。虽然修改的地方较多,但也没那么麻烦,都是简单的体力劳动,也没什么费劲的。
3、多个配置怎么办:
如果系统里面就一两个这样的配置,采用上面的方法很快就完成了,但如果系统中有很多这样的配置,那工作量就有点大了。这时我们就会偷下懒了,就要想到继承了,看看配置是不是基本都是相似的。而且,难道我们给每一个配置建立一个对应的映射表,每个表里n多字段只有一条数据,这样好像有点浪费。