GboatSessionFactoryAspect |
实现 SessionFactory 动态切换的切面,该切面执行 SessionFactory 切换的规则:
如果目标实例的类型或方法(全限定名)配置了指定的 SessionFactory,则直接切换,如下面的配置示例中的
glodon.gbp.xxx.service.TestServiceImpl,在执行此类的所有方法时都会使用 mysqlSessionFactory
方法参数中包含 Class 类型参数,且该 Class 的名称匹配 targetSessionFactorys 中的任一规则
方法参数中包含 Map 类型参数,且该 Map 中 key 为 QuerySupport.PARAM_TABLENAME 的值匹配 targetSessionFactorys 中的任一规则
方法有且只有一个参数,且参数对象的 getClass() 方法得到的 Class 满足上面的第 2 点
不满足上述任意切换 SessionFactory的条件时,将清除 SessionFactory切换设置,直接使用默认 SessionFactory
要启用该切面,需在 Spring 配置文件中新增如下配置(配置示例):
<-- 声明切面实例 -->
<bean id="gboatSessionFactoryAspect" class="gboat2.base.dao.aspect.GboatSessionFactoryAspect">
<property name="targetSessionFactorys">
<! |