在spring应用程序中,我们这样编写以通过手动加载spring应用程序上下文来获取bean。
ApplicationContext context = new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
JobLauncher launcher=(JobLauncher)context.getBean("launcher");
如何在春季靴子中做类似的事情? 成为新手......需要帮助
答案 0 :(得分:15)
@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
ApplicationContext app = SpringApplication.run(Application .class, args);//init the context
SomeClass myBean = app.getBean(SomeClass.class);//get the bean by type
}
@Bean // this method is the equivalent of the <bean/> tag in xml
public SomeClass getBean(){
return new SomeClass();
}
@Bean
public MyUtilClass myUtil(SomeClass sc){
MyUtilClass uc = new MyUtilClass();
uc.setSomeClassProp(sc);
return uc;
}
}
您也可以使用xml文件来声明bean而不是java配置,只需使用@ImportResource({"classpath*:applicationContext.xml"})
编辑:回答评论:将util类设为spring bean(使用@Component注释和组件扫描或与上面显示的SomeClass
相同)然后你可以@Autowire你喜欢的bean。然后,当您想要使用Util类时,只需从上下文中获取它。