gpt4 book ai didi

java - 我可以在没有任何 xml 配置文件的情况下使用 Spring 注入(inject) Java 对象吗?

转载 作者:IT老高 更新时间:2023-10-28 13:54:33 25 4
gpt4 key购买 nike

我想在不使用任何 xml 配置的情况下以编程方式使用 Spring 注入(inject)一个普通的 java 对象。想要注入(inject)带有 @EJB@PostConstruct 等标签注释的字段/方法。这可能吗?谢谢!

最佳答案

在没有 XML 的情况下创建 ApplicationContext(使用 AnnotationConfigApplicationContext)

AnnotationConfigApplicationContext ,您根本不需要任何 XML。您以编程方式创建应用程序上下文,或者

a) 手动 register annotated classes

appContext.register( MyTypeA.class,
MyTypeB.class,
MyTypeC.class );

b) 或 scan the classpath for annotated classes

appContext.scan(
"com.mycompany.myproject.mypackagea",
"com.mycompany.myproject.mypackageb"
)

如果你使用一种便利的构造函数

AnnotationConfigApplicationContext(Class<?> ... annotatedClasses)

AnnotationConfigApplicationContext(String ... basePackages)

上下文是自动创建和刷新的,否则你需要调用refresh()添加类或包后手动方法。

Autowiring 现有的非 Spring bean(使用 AutowireCapableBeanFactory)

对于 Autowiring 现有的 bean,我认为首选的习惯用法是使用

appContext.getAutowireCapableBeanFactory().autowireBean(existingBean)

或者,如果您想要更多控制权,请使用

appContext.getAutowireCapableBeanFactory()
.autowireBeanProperties(
existingBean,
autowireMode,
// e.g. AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE
dependencyCheck
)

更多引用,见

关于java - 我可以在没有任何 xml 配置文件的情况下使用 Spring 注入(inject) Java 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3693971/

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