全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Spring实现Aware接口自定义获取bean的两种方式

在使用spring编程时,常常会遇到想根据bean的名称来获取相应的bean对象,这时候,就可以通过实现BeanFactoryAware来满足需求,代码很简单:

@Servicepublic class BeanFactoryHelper implements BeanFactoryAware {
  private static BeanFactory beanFactory;
  @Override
  public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
    this.beanFactory = beanFactory;
  }
  public static Object getBean(String beanName){
     if(beanFactory == null){
      throw new NullPointerException("BeanFactory is null!");
    }
     return beanFactory.getBean(beanName);   } }

还有一种方式是实现ApplicationContextAware接口,代码也很简单:

@Service
public class ApplicationContextHelper implements ApplicationContextAware {
  private static ApplicationContext applicationContext;
  @Override
  public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    this.applicationContext = applicationContext;
  }
  public static Object getBean(String beanName){
    if(applicationContext == null){
      throw new NullPointerException("ApplicationContext is null!");
    }
    return applicationContext.getBean(beanName);
  }
}

上面两种方法,只有容器启动的时候,才会把 BeanFactoryApplicationContext 注入到自定义的helper类中,如果在本地junit测试的时候,如果需要根据bean的名称获取bean对象,则可以通过ClassPathXmlApplicationContext来获取一个ApplicationContext,代码如下:

@Test
  public void test() throws SQLException {
    //通过从classpath中加载spring-mybatis.xml实现bean的获取
    ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
    IUserService userService = (IUserService) context.getBean("userService");
    User user = new User();
    user.setName("test");
    user.setAge(20);
    userService.addUser(user);
  }

总结

以上就是小编分享给大家的Java编程实现Aware接口自定义获取bean的两种方式的全部内容,希望对大家有所帮助。如果有什么问题,可以留言,小编会及时回复大家。感谢大家对本站的支持!


# spring  # bean  # 接口  # 自定义bean  # 使用Spring底层组件实现Aware接口  # SpringBoot ApplicationContextAware拓展接口使用详解  # Spring的Aware接口实现及执行顺序详解  # 详解spring中的Aware接口功能  # Spring的Aware接口你知道多少  # Spring中@Import的各种用法以及ImportAware接口详解  # 一文看懂 Spring Aware 接口功能  # 两种  # 自定义  # 小编  # 有什么  # 也很  # 给大家  # 很简单  # 会把  # 则可  # 常常会  # 感谢大家  # 就可以  # 类中  # 这时候  # 加载  # Object  # BeansException  # pre 


相关文章: 建站主机类型有哪些?如何正确选型  如何快速搭建高效WAP手机网站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何彻底删除建站之星生成的Banner?  广州建站公司哪家好?十大优质服务商推荐  如何在景安服务器上快速搭建个人网站?  C++如何使用std::optional?(处理可选值)  如何通过宝塔面板实现本地网站访问?  如何使用Golang安装API文档生成工具_快速生成接口文档  建站之星2.7模板快速切换与批量管理功能操作指南  制作证书网站有哪些,全国城建培训中心证书查询官网?  怀化网站制作公司,怀化新生儿上户网上办理流程?  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何通过西部建站助手安装IIS服务器?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  建站org新手必看:2024最新搭建流程与模板选择技巧  详解jQuery停止动画——stop()方法的使用  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  香港服务器如何优化才能显著提升网站加载速度?  网页设计网站制作软件,microsoft office哪个可以创建网页?  如何基于PHP生成高效IDC网络公司建站源码?  如何快速搭建个人网站并优化SEO?  如何通过建站之星自助学习解决操作问题?  安云自助建站系统如何快速提升SEO排名?  建站之星备案是否影响网站上线时间?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何快速查询域名建站关键信息?  如何用PHP快速搭建CMS系统?  c# 在ASP.NET Core中管理和取消后台任务  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何在景安云服务器上绑定域名并配置虚拟主机?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  网页设计与网站制作内容,怎样注册网站?  非常酷的网站设计制作软件,酷培ai教育官方网站?  建站主机是否等同于虚拟主机?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  建站主机默认首页配置指南:核心功能与访问路径优化  制作旅游网站html,怎样注册旅游网站?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  已有域名能否直接搭建网站?  TestNG的testng.xml配置文件怎么写  网站建设设计制作营销公司南阳,如何策划设计和建设网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。