gpt4 book ai didi

spring - 关于Spring的@Autowired和Wicket的@SpringBean

转载 作者:行者123 更新时间:2023-12-01 11:40:59 32 4
gpt4 key购买 nike

我目前正在考虑将 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);
}

}

最佳答案

如果您使用 Wicket SpringComponentInjector,它会使用自己的注入(inject)。 @Autowired 注释是一个 Springframework 注释,但 Wicket SpringComponentInjector 会忽略它。因此,Wicket 注释是 @SpringBean,它标记一个字段由 Spring bean 或必须存在于 Spring 上下文中的组件 Autowiring (注入(inject))。

在您的代码片段中,您使用了 SpringJUnit4ClassRunner 运行程序,因此您的字段由 Spring 注入(inject),所以它是正确的。

查看示例,如何使用 SpringComponentInjector How can I get a Spring bean injected in my custom Wicket model class?

关于spring - 关于Spring的@Autowired和Wicket的@SpringBean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20884407/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com