java – 我可以拦截Spring @Autowired进程来进行验证检查吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 我可以拦截Spring @Autowired进程来进行验证检查吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1151字,纯文字阅读大概需要2分钟。
内容图文
![java – 我可以拦截Spring @Autowired进程来进行验证检查吗?](/upload/InfoBanner/zyjiaocheng/964/fb6968b05118470b9ee85134b0d8b1ab.jpg)
有时候我们会在代码中出错,并且@Autowired一个原型范围的bean进入单例范围的bean.这当然是错误的,因为单身人士可能会使用这种依赖,就像它也是一个单身人士一样.
是否有任何方法可以拦截自动装配/ DI过程来检测并引发错误?这将用于开发时的检测.
解决方法:
实现这一目标的最佳方法是通过单元测试.例如:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MyAppConfig.class, loader = AnnotationConfigContextLoader.class)
public class MyServiceTest {
@Autowired(required = true)
MyService myService;
@Test
public void shouldAutowire() {}
}
@ContextConfiguration可以与上面的Java配置一起使用,也可以引用XML配置文件.通过这样做,Spring将用于在运行测试时注入所有依赖项.通过在@Autowired bean上包含“required = true”,您可以确保Spring在该阶段会抛出异常,并且您的测试将失败.上面的示例可能看起来不太花哨,但它将确保捕获任何配置错误.当然,您可以更进一步,让您的测试使用注入的bean.我发现数据库访问集成测试相当方便.
这不是拦截自动装配过程本身,但您当然可以测试您的bean是否正常运行.
您将需要导入spring-test依赖项.即对于Maven:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
内容总结
以上是互联网集市为您收集整理的java – 我可以拦截Spring @Autowired进程来进行验证检查吗?全部内容,希望文章能够帮你解决java – 我可以拦截Spring @Autowired进程来进行验证检查吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。