Spring Boot的普通类调用Bean对象

Spring Boot的普通类调用Bean对象

有时候需要在一些工具类中调用到Spring管理的bean对象的一些方法。
代码如下

/**
 * 导入处理接口
 * @author Thinkpad
 *
 */
public class ResourceImportServiceImpl implements HxlsOptRowsInterface {

    private static ApplicationContext applicationContext;//启动类set入,调用下面set方法

    public static void setApplicationContext(ApplicationContext context) {
        applicationContext = context;
    }
    //省略部分代码
}

在普通类中定义 ApplicationContext 静态变量和set方法。

Spring boot的启动类:

public class SampleWebFreeMarkerApplication  extends SpringBootServletInitializer{
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(SampleWebFreeMarkerApplication.class);
        }

    public static void main(String[] args) throws Exception {
        ConfigurableApplicationContext  applicationContext = SpringApplication.run(SampleWebFreeMarkerApplication.class, args);
        ResourceImportServiceImpl.setApplicationContext(applicationContext);
    }

}

ConfigurableApplicationContext 是 ApplicationContext 接口的实现,这里直接传到普通类的 setApplicationContext 方法。

这样就可以获取自己想要的接口,不会报空指针异常了。

GogoResourceService gogoResourceService = applicationContext.getBean(GogoResourceService.class);
        gogoResourceService.insertSelective(gogoResource);

猜你喜欢

转载自blog.csdn.net/qq_34758074/article/details/79244071