最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 如何從spring容器中獲取注入的bean對(duì)象

 更新時(shí)間:2020年11月02日 11:40:06   作者:Marydon  
這篇文章主要介紹了Java 如何從spring容器中獲取注入的bean對(duì)象,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

1.使用場(chǎng)景

  控制層調(diào)用業(yè)務(wù)層時(shí),控制層需要拿到業(yè)務(wù)層在spring容器中注入的對(duì)象

2.代碼實(shí)現(xiàn)

import org.apache.struts2.ServletActionContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
 * 從spring容器中獲取注入的bean對(duì)象
 * @explain 必須獲取到ServletContext對(duì)象,Controller層以struts2為例
 * @author Marydon
 * @creationTime 2018年6月1日上午10:06:49
 * @version 1.0
 * @since
 * @email marydon20170307@163.com
 */
public final class BeansUtils {
  private static final Logger logger = LoggerFactory.getLogger(BeansUtils.class);
  private static ApplicationContext ctx;
  private static WebApplicationContext webCtx;
  // 靜態(tài)代碼塊:加載該類時(shí)會(huì)被運(yùn)行的代碼
  static {

    if (ctx == null) {
      try {
        // 入?yún)⑿枰玫絊ervletContext對(duì)象
        webCtx = WebApplicationContextUtils
            .getRequiredWebApplicationContext(ServletActionContext.getServletContext());
        logger.info("從web.xml容器中加載spring-config.xml");
      } catch (Exception e) {
        logger.info("直接加載spring-config.xml");
      }
      if (webCtx == null)
        // 你可以自定義spring配置文件的文件名
        ctx = new ClassPathXmlApplicationContext("spring-config.xml");
    }
  }

  /**
   * 通過(guò)beanID獲取bean實(shí)例
   * 
   * @param beanID
   *      bean的代碼
   * @return 返回對(duì)應(yīng)的實(shí)例
   * @throws RuntimeException
   *       bean沒(méi)有定義
   */
  public static Object getBeanInstance(String beanID) throws RuntimeException {
    logger.info("在spring容器中獲取Bean對(duì)象 ID=" + beanID);
    Object obj;
    if (BeansUtils.ctx == null) {
      if (BeansUtils.webCtx.containsBeanDefinition(beanID)) {
        obj = BeansUtils.webCtx.getBean(beanID);
      } else {
        logger.info("beanID=" + beanID + "沒(méi)有定義");
        throw new RuntimeException(beanID + "沒(méi)有定義!");
      }
    } else {
      if (BeansUtils.ctx.containsBeanDefinition(beanID)) {
        obj = BeansUtils.ctx.getBean(beanID);
      } else {
        logger.info("beanID=" + beanID + "沒(méi)有定義");
        throw new RuntimeException(beanID + "沒(méi)有定義!");
      }
    }
    return obj;
  }
}

以上就是Java 如何從spring容器中獲取注入的bean對(duì)象的詳細(xì)內(nèi)容,更多關(guān)于Java獲取bean對(duì)象的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談Spring注入模型

    淺談Spring注入模型

    如果不深入到Spring的源碼,是很少有機(jī)會(huì)了解到Spring的注入模型(AutowireMode)。但是為了掃清我們學(xué)習(xí)Spring源碼的障礙,我們有必要了解下Spring的注入模型,感興趣的同學(xué)可以閱讀一下
    2023-04-04
  • RestTemplate在Spring或非Spring環(huán)境下使用精講

    RestTemplate在Spring或非Spring環(huán)境下使用精講

    這篇文章主要為大家介紹了RestTemplate在Spring或非Spring環(huán)境下使用精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • IDEA卡在”正在解析Maven依賴項(xiàng)“的解決方法

    IDEA卡在”正在解析Maven依賴項(xiàng)“的解決方法

    在創(chuàng)建新的SpringBoot項(xiàng)目時(shí),始終卡在"正在解析Maven依賴項(xiàng)…",本文小編給大家介紹了幾種相關(guān)的解決方案,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-11-11
  • 模仿Spring手寫一個(gè)簡(jiǎn)易的IOC

    模仿Spring手寫一個(gè)簡(jiǎn)易的IOC

    這篇文章主要介紹了模仿Spring手寫一個(gè)簡(jiǎn)易的IOC,幫助大家更好的理解和學(xué)習(xí)spring框架,感興趣的朋友可以了解下
    2020-11-11
  • Spring Cloud Gateway 如何修改HTTP響應(yīng)信息

    Spring Cloud Gateway 如何修改HTTP響應(yīng)信息

    這篇文章主要介紹了Spring Cloud Gateway 修改HTTP響應(yīng)信息的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Javaweb EL自定義函數(shù)開(kāi)發(fā)及代碼實(shí)例

    Javaweb EL自定義函數(shù)開(kāi)發(fā)及代碼實(shí)例

    這篇文章主要介紹了Javaweb EL自定義函數(shù)開(kāi)發(fā)及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java?Io?File文件操作基礎(chǔ)教程

    Java?Io?File文件操作基礎(chǔ)教程

    這篇文章主要介紹了Java?Io?File文件操作,在這里需要注意File只能訪問(wèn)文件以及文件系統(tǒng)的元數(shù)據(jù)。如果你想讀寫文件內(nèi)容,需要使用FileInputStream、FileOutputStream或者RandomAccessFile,需要的朋友可以參考下
    2022-05-05
  • Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 如何解決getReader() has already been called for this request問(wèn)題

    如何解決getReader() has already been called&

    這篇文章主要介紹了如何解決getReader() has already been called for this request問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java設(shè)計(jì)模式--三種工廠模式詳解

    java設(shè)計(jì)模式--三種工廠模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java設(shè)計(jì)模式之工廠模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能給你帶來(lái)幫助
    2021-07-07

最新評(píng)論

临高县| 安图县| 正阳县| 仙居县| 龙口市| 类乌齐县| 湘西| 启东市| 肥乡县| 鸡西市| 浙江省| 张家港市| 郎溪县| 新巴尔虎右旗| 鸡东县| 桑植县| 灵宝市| 连城县| 渝北区| 井冈山市| 长治县| 文化| 昭苏县| 凭祥市| 佳木斯市| 洱源县| 曲水县| 丹寨县| 夏河县| 阳谷县| 龙井市| 怀来县| 左贡县| 襄樊市| 邹城市| 开封市| 开化县| 永寿县| 边坝县| 公安县| 临泽县|