栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 如何从spring容器中获取注入的bean对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 如何从spring容器中获取注入的bean对象

1.使用场景

  控制层调用业务层时,控制层需要拿到业务层在spring容器中注入的对象

2.代码实现

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;

public final class BeansUtils {
  private static final Logger logger = LoggerFactory.getLogger(BeansUtils.class);
  private static ApplicationContext ctx;
  private static WebApplicationContext webCtx;
  // 静态代码块:加载该类时会被运行的代码
  static {

    if (ctx == null) {
      try {
 // 入参需要拿到ServletContext对象
 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");
    }
  }

  
  public static Object getBeanInstance(String beanID) throws RuntimeException {
    logger.info("在spring容器中获取Bean对象 ID=" + beanID);
    Object obj;
    if (BeansUtils.ctx == null) {
      if (BeansUtils.webCtx.containsBeanDefinition(beanID)) {
 obj = BeansUtils.webCtx.getBean(beanID);
      } else {
 logger.info("beanID=" + beanID + "没有定义");
 throw new RuntimeException(beanID + "没有定义!");
      }
    } else {
      if (BeansUtils.ctx.containsBeanDefinition(beanID)) {
 obj = BeansUtils.ctx.getBean(beanID);
      } else {
 logger.info("beanID=" + beanID + "没有定义");
 throw new RuntimeException(beanID + "没有定义!");
      }
    }
    return obj;
  }
}

以上就是Java 如何从spring容器中获取注入的bean对象的详细内容,更多关于Java获取bean对象的资料请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/130714.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号