关于Spring的@Autowired和Wicket的@SpringBean

 丿艹约锭So灬幸福老师 发布于 2023-02-07 08:22

我目前正在研究将Mockito和JUnit集成到我的Wicket/Spring/Hibernate项目中,并找到了如何使用注释来完成此操作的教程.

麻烦是我对@Autowired不熟悉,在浏览谷歌后我发现很难看出这个注释和@SpringBean注释之间的区别.

它们是同一个还是我应该注意的差异?

我的代码为这个问题提供了一些上下文:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = false) 
public class TestHome
{
private WicketTester tester;

@Autowired
private ApplicationContext ctx;

@Autowired
private WebApplication webApplication;

@Before
public void setUp() {
    tester = new WicketTester(webApplication);
}

@Test
@Transactional
@Rollback(true)
public void testRenderHomePage() {
    tester.startPage(Home.class);
    tester.assertRenderedPage(Home.class);
    tester.assertComponent("home", Home.class);
}

}

Martin Strej.. 5

如果使用Wicket SpringComponentInjector,它会使用自己的注入.@Autowired注释是一个Springframework注释,但Wicket SpringComponentInjector忽略了这一点.因此,Wicket注释是@SpringBean,它标记了Spring bean或必须存在于Spring上下文中的组件自动装配(注入)的字段.

在您的代码片段中,您使用SpringJUnit4ClassRunner运行器,因此您的字段由Spring注入,因此它是正确的.

查看示例,如何使用SpringComponentInjector 如何在我的自定义Wicket模型类中注入Spring bean?

1 个回答
  • 如果使用Wicket SpringComponentInjector,它会使用自己的注入.@Autowired注释是一个Springframework注释,但Wicket SpringComponentInjector忽略了这一点.因此,Wicket注释是@SpringBean,它标记了Spring bean或必须存在于Spring上下文中的组件自动装配(注入)的字段.

    在您的代码片段中,您使用SpringJUnit4ClassRunner运行器,因此您的字段由Spring注入,因此它是正确的.

    查看示例,如何使用SpringComponentInjector 如何在我的自定义Wicket模型类中注入Spring bean?

    2023-02-07 08:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有