springboot如何在static方法中,调用Bean对象

发布时间 2023-11-30 22:27:47作者: 信铁寒胜

场景:比如说你用了springboot,也用了@Autowired 注解。但是你并不是做一个,而是做成一个jar包。

这时你就需要用到main方法去获取到Bean类。这是用@Autowired 注解是不行的。因为main方法是静态。

@Autowired 注解注入非静态变量中。

这是一串案例代码。

通过

SpringApplication.run(App.class, args) 获取到上下文对象ConfigurableApplicationContext
通过上下文对象去获取到对象的Bean。
 
这样就可以解决了,既用了springboot。又想着,只做成可执行jar包的作用了。
@SpringBootApplication
@MapperScan("com.juice.it.dao")
public class App {

	public static void main(String[] args) {
		ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
		System.out.println("启动成功!!!");
		JTTimeService timeService = context.getBeanFactory().getBean(JTTimeService.class);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("type","做人");
		String result = timeService.getTimeList(jsonObject);
		System.out.println();
	}
}