解決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里的方法來和數據庫交互了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM