gpt4 book ai didi

主方法类中的 Spring bean 注入(inject)

转载 作者:IT老高 更新时间:2023-10-28 13:59:30 26 4
gpt4 key购买 nike

我有一个带有 spring 3.0 的 Web 应用程序。我需要从一个使用 appcontext xml 中定义的 bean 的 cron 运行一个带有 main 方法的类(使用组件扫描通知)。我在同一个 src 目录中有我的主类。如何将 Web 上下文中的 bean 注入(inject) main 方法。我尝试使用

ApplicationContext context = new ClassPathXmlApplicationContext("appservlet.xml");

我尝试使用 AutoWired,它返回一个空 bean。所以我使用了 Application ctx ,这在我运行 main 方法时创建了一个新的上下文(如预期的那样)。但是是否有可能我可以使用容器中现有的 bean。

 @Autowired
static DAO dao;

public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("xman- servlet.xml");
TableClient client = context.getBean(TableClient.class);
client.start(context);

}

最佳答案

您不能将 Spring bean 注入(inject)到任何不是由 spring 创建的对象中。另一种说法是:Spring 只能注入(inject)到它管理的对象中。

由于您正在创建上下文,因此您需要为您的 DAO 对象调用 getBean。

查看 Spring Batch它可能对你有用。

关于主方法类中的 Spring bean 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313070/

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