解析Java中如何获取Spring中配置的bean

时间:2023-07-20 13:35:26 

一、什么是Spring?
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

二、如何在程序中获取Spring配置的bean呢?
方法一:在初始化时保存ApplicationContext对象
代码:


ApplicationContext ac = new FileSystemXmlApplicationContex("applicationContext.xml");
    ac.getBean("beanId");


说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。

方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:


import org.springframework.web.context.support.WebApplicationContextUtils;
    ApplicationContext ac1 = WebApplicationContextUtils
                               .getRequiredWebApplicationContext(ServletContext sc)
    ApplicationContext ac2 = WebApplicationContextUtils
                               .getWebApplicationContext(ServletContext sc)
    ac1.getBean("beanId");
    ac2.getBean("beanId");


方法三:继承自抽象类ApplicationObjectSupport
说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。

方法四:继承自抽象类WebApplicationObjectSupport
说明:类似方法三,调用getWebApplicationContext()获取WebApplicationContext

方法五:实现接口ApplicationContextAware
说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。Spring初始化时,会通过该方法将ApplicationContext 对象注入。

标签:Java,Spring,bean
0
投稿

猜你喜欢

  • Android转场效果实现示例浅析

    2023-09-21 12:10:17
  • Java Apollo是如何实现配置更新的

    2023-09-26 13:55:18
  • Java使用组合模式实现表示公司组织结构功能示例

    2022-07-31 08:03:37
  • Java异常 Exception类及其子类(实例讲解)

    2022-04-05 13:40:16
  • JAVA中Comparable接口和自定义比较器示例讲解

    2023-11-20 22:16:32
  • springboot+vue制作后台管理系统项目

    2022-02-26 06:08:37
  • java集合Collection常用方法解读

    2023-11-16 18:29:07
  • C#实现简单的RSA非对称加密算法示例

    2022-07-09 18:16:37
  • Mybatis-Spring源码分析图解

    2023-07-18 13:35:07
  • 使用JSONObject生成和解析json的方法

    2022-06-15 11:13:15
  • Androd 勇闯高阶性能优化之布局优化篇

    2023-01-22 12:12:15
  • 一文快速掌握Spring Cloud Stream

    2023-09-01 23:09:38
  • SpringCloud Gateway HttpWebHandlerAdapter链路调用请求流程介绍

    2023-04-29 00:12:18
  • c# winform时钟的实现代码

    2023-04-05 07:40:53
  • Java简单使用redis-zset实现排行榜

    2021-06-07 20:34:54
  • 快速学习C# 设计模式之职责链模式

    2022-03-28 17:47:45
  • c#根据网址抓取网页截屏生成图片的示例

    2021-08-31 14:29:13
  • SpringBoot中shiro过滤器的重写与配置详解

    2021-07-28 23:40:09
  • 浅谈log4j的rootLogger及其他坑爹的地方

    2023-07-31 02:23:14
  • C#多线程之线程通讯(AutoResetEvent)

    2021-12-26 01:48:55
  • asp之家 软件编程 m.aspxhome.com