解决spring boot中普通类中使用service为null 的方法

Posted 宝贝企鹅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决spring boot中普通类中使用service为null 的方法相关的知识,希望对你有一定的参考价值。

我使用的是springboot+mybatisplus +mysql
1.创建一个SpringUtil工具类

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public final class SpringUtil implements ApplicationContextAware {
    private static ApplicationContext applicationContext = null;
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        // TODO Auto-generated method stub
        if (SpringUtil.applicationContext == null) {
            SpringUtil.applicationContext = applicationContext;
            System.out.println("=============================================="+
                    "========ApplicationContext配置成功,在普通类可以通过调用ToolSpring.getAppContext()获取applicationContext对象,applicationContext="
                            + applicationContext + "==========");
        }
    }
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }
    //通过类名称获取Bean.
    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);
    }
    //通过class获取Bean.
    public static <T> T getBean(Class<T> clazz){
        return getApplicationContext().getBean(clazz);
    }
}

 

2.在启动类上面添加注解

@Import(SpringUtil.class)
依赖 import org.springframework.context.annotation.Import;

3.在普通类中使用SpringUtil创建service类
 

  TestService testService = (TestService )SpringUtil.getBean(TestService.class);
  testService.save(testEntity);


这里强转了一下,我试了下不强转也没问题
此时就可以使用testService里的方法来和数据库交互了

以上是关于解决spring boot中普通类中使用service为null 的方法的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 在自定义类中使用组件? [关闭]

使用Spring Boot,如何分别处理普通请求和ajax请求的异常

spring bootspring boot中使用@RestController不起作用,不返回json,依旧去找访问接口的请求地址对应的页面

如何在spring boot的多个类中使用@Autowired MongoTemplate

类中的字段值不会使用 Spring Boot MVC 控制器更新

使用 Spring Boot 2 的 Docker 堆栈“配置”