gpt4 book ai didi

java - 在 Spring ,有没有办法 Autowiring 第一个 bean?

转载 作者:行者123 更新时间:2023-11-30 08:04:32 24 4
gpt4 key购买 nike

在下面的示例中,有没有办法避免执行 context.getBean()? testService 随后使用的所有其他 bean 都会 Autowiring 。 (这是一个控制台应用程序)

public class Test { 


private static ITestService testService;

private static ApplicationContext context;

public static void main(String[] args) {

context = new ClassPathXmlApplicationContext(
new String[]{"/META-INF/spring/app-context.xml"});
ITestService testService = context.getBean(ITestService.class);

}

}

我尝试向 ApplicationContext 添加 Autowiring 注释,但没有成功。此外,如果我 Autowiring 它,它如何知道我的 app-context.xml 的位置?

更新:我找到了我需要的over here

最佳答案

是的,您在这里遗漏了一些细节。

下面是 Spring 工作原理的简短说明。

1- 应用程序上下文以某种方式加载(我们很快就会实现)。2- 加载后,应用程序上下文将初始化/创建所有定义的 bean。这是 bean 作为依赖项注入(inject)的时候。在此之后,每当您从应用程序上下文中获取一个 bean 时,该 bean 都已初始化并准备好与所有依赖项一起使用(考虑到一切正常)。

RE第一步,有几种方法可以自动化Spring初始化。一种方法就是您正在做的事情,显式实例化一种方法。其他方式可能是通过 context listener如果您处于网络环境中,或者可能使用 @RunWith . (你可以找到更多 here )

在您的情况下,我相信您正在寻找在(单元?!?)测试环境中使用 Spring,因此您正在寻找类似

的东西
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {

@Autowired
private ApplicationContext applicationContext;

// class body...
}

更多详情 here

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#testing

关于java - 在 Spring ,有没有办法 Autowiring 第一个 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543922/

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