国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

解決Springboot @Autowired 無法注入問題

2024-07-14 08:41:57
字體:
來源:轉載
供稿:網友

特別提醒:一定要注意文件結構

  WebappApplication 一定要在包的最外層,否則Spring無法對所有的類進行托管,會造成@Autowired 無法注入。

1.  添加工具類獲取在 Spring 中托管的 Bean

  (1)工具類

package com.common;import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;/** * @program: IPC_1P * @description: 獲取在spring中托管的bean * @author: johnny * @create: 2018-08-03 16:24 **/public class SpringContextUtil {  private static ApplicationContext applicationContext; // Spring應用上下文  // 下面的這個方法上加了@Override注解,原因是繼承ApplicationContextAware接口是必須實現的方法  public static void setApplicationContext(ApplicationContext applicationContext)      throws BeansException {    SpringContextUtil.applicationContext = applicationContext;  }  public static ApplicationContext getApplicationContext() {    return applicationContext;  }  public static Object getBean(String name) throws BeansException {    return applicationContext.getBean(name);  }  public static Object getBean(String name, Class requiredType)      throws BeansException {    return applicationContext.getBean(name, requiredType);  }  public static boolean containsBean(String name) {    return applicationContext.containsBean(name);  }  public static boolean isSingleton(String name)      throws NoSuchBeanDefinitionException {    return applicationContext.isSingleton(name);  }  public static Class getType(String name)      throws NoSuchBeanDefinitionException {    return applicationContext.getType(name);  }  public static String[] getAliases(String name)      throws NoSuchBeanDefinitionException {    return applicationContext.getAliases(name);  }}

  (2)使用

    1)程序啟動時,實例化 SpringContextUtil

@SpringBootApplicationpublic class WebappApplication {  private static ApplicationContext applicationContext;  public static void main(String[] args) {    applicationContext = SpringApplication.run(WebappApplication.class, args);    //    SpringContextUtil springContextUtil = new SpringContextUtil();    springContextUtil.setApplicationContext(applicationContext);    System.out.println("服務器啟動測試!");}

    2)在使用 @Service 的方法中,通過@Autowired 注入,使用SpringcontexUtil 獲取Bean上下文

@Autowired  SenderService senderService;public class Package_State {  @Autowired  SenderService senderService;  @Component  private Package_State() {    senderService = (SenderService)SpringContextUtil.getBean("senderService");  }}

總結

以上所述是小編給大家介紹的解決Springboot @Autowired 無法注入問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 稷山县| 日喀则市| 碌曲县| 应城市| 建德市| 城步| 杭州市| 乐清市| 通州区| 宣城市| 红桥区| 海丰县| 体育| 澎湖县| 泰安市| 盐津县| 汶上县| 阿拉善左旗| 吴川市| 赤壁市| 铜鼓县| 汾阳市| 眉山市| 新民市| 城固县| 西乌珠穆沁旗| 略阳县| 银川市| 武城县| 兴和县| 威远县| 南投县| 英山县| 肥西县| 博爱县| 榆树市| 玉林市| 巴彦县| 长武县| 武强县| 成武县|