我有一个用@Sql注释的抽象类(executionPhase = ExecutionPhase.BEFORE_TEST_METHOD,scripts =“someScript”).我有一个继承自抽象类的测试类.子类也使用@Sql注释(executionPhase = ExecutionPhase.BEFORE_TEST_METH...
我有一个用@Sql注释的抽象类(executionPhase = ExecutionPhase.BEFORE_TEST_METHOD,scripts =“someScript”).
我有一个继承自抽象类的测试类.子类也使用@Sql注释(executionPhase = ExecutionPhase.BEFORE_TEST_METHOD,scripts =“someOtherScript”).
当我运行spring boot 1.2时,一切都按照我的预期运行:来自父类的脚本在子类之前运行.我升级到spring boot 1.3,现在,子类的@Sql重写了父类的@Sql,父类脚本永远不会运行.
使用spring boot 1.3有不同的方法吗?那么父类脚本是在子类脚本之前运行的吗?
解决方法:
With spring boot 1.3 is there a different way of doing this? So that parent class scripts are run before child class scripts?
好的,经过一些调查工作,我已经找到了你的问题的答案.
简答
不,不幸的是,你想要做的事情是不可能的.
详细解答
通过设计,从未支持将@Sql的本地类级声明与超类上的@Sql的类级声明合并.本地声明总是旨在覆盖超类的声明.
因此,你只是幸运(或不幸,取决于你如何看待它)它对你有用.
它曾经为你工作的唯一原因是由于Spring核心支持查找@Repeatable注释的错误(详见SPR-13068).
但是,这个错误在Spring Framework 4.2中已得到修复,并且由于Spring Boot 1.3自动将Spring Framework依赖项升级到4.2,这就是为什么你在Spring Boot升级后注意到这个问题的原因.
问候,
Sam(Spring TestContext Framework的作者)
本文标题为:java – 将超类中的@Sql与子类中的@Sql合并
基础教程推荐
- Java集合ArrayList与LinkedList详解 2023-04-07
- 使用jmx exporter采集kafka指标示例详解 2023-07-01
- Java+TestNG接口自动化入门详解 2023-08-08
- 在JSP中使用formatNumber控制要显示的小数位数方法 2023-07-31
- JSP + Servlet实现生成登录验证码示例 2023-08-01
- java利用pdfbox+poi往pdf插入数据 2022-10-24
- 使用AOP+反射实现自定义Mybatis多表关联查询 2022-11-08
- Java 多线程并发LockSupport 2023-01-09
- 解决Springboot配置excludePathPatterns不生效的问题 2023-06-23
- java 如何查看jar包加载顺序 2023-08-10