目前在用spring mvc写一个远程控制的工具。 今天写了两个类的dao层, 然后抽出了一个dao层接口。 导出接口时发现将原有类的注解@Transactional 也导到接口中了。 如果能将注解加到接口中,那就不需要一个个地加到实现类中了。
为了验证方法是否可靠,立马开工尝试。将第一个实现类(Class1)的注解去掉后,测试能正常跑通。 但将第二个实现类(Class2)的注解去掉后,就不通了。 反之,如果去掉Class2的注解同时保留Class1的注解,测试也能跑通。但如果两个都没有注解,仅接口有注解,就无法运行了。 这两个实现类似乎能互相感知?
这一次,我去掉了Class1的注解的同时去掉了接口的注解,结果测试无法走通。 印证了猜想,interface和其实现类之间,在遇到内部异常时,是可以互相参照的。这说明spring框架很健壮,很值得学习。遗憾的是我还没去读spring的源代码。。
附:
项目参见 github.com/acearth/EventManage.git
问题代码位于siat.pem.dao包下
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-08 10:08:16