iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >关于Springboot如何获取IOC容器
  • 456
分享到

关于Springboot如何获取IOC容器

2024-04-02 19:04:59 456人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录SpringBoot项目中获取ioc容器的方式方法一(不实用,不推荐):方法二(强烈推荐):总结springboot项目中获取ioC容器的方式 在Springboot项目中如果要

springboot项目中获取ioC容器的方式

在Springboot项目中如果要获取IOC容器目前有两种方法。

方法一(不实用,不推荐):

在Springboot项目中都会存在一个SpringApplication的启动类,我们通过以下代码启动IOC容器。


SpringApplication.run(Application.class, args);

其实run方法会将创建的IOC容器作为返回值返回,那么我们就可以通过声明一个ApplicationContext对象来接收run方法的返回值。


public class SpringApplication {
    public static void main(String[] args) {
        ApplicationContext applicationContext = SpringApplication.run(Application.class, args);
        Object startSerive = applicationContext.getBean("startSerive");
    }
}

但是,使用这种方法会遇到各种各样的问题,所以我们通常使用第二种方法。

方法二(强烈推荐):

通过编写实现了ApplicationContextAware工具类来获取IOC容器,当实现了ApplicationContextAware的类在容器中被初始化和加载后,会自动调用ApplicationContextAware中的setApplicationContext方法,将IOC容器传入setApplicationContext方法的形参中。

以下是用于获取IOC容器的工具类:


public class SprinGContextUtil implements ApplicationContextAware {
    private static ApplicationContext applicationContext;
    public SpringContextUtil() {
    }
    
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if (SpringContextUtil.applicationContext == null) {
            SpringContextUtil.applicationContext = applicationContext;
        }
    }
    
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }
    
    public static Object getBean(String name){
        return applicationContext.getBean(name);
    }
    
    public static Object getBean(Class<?> requiredType){
        return applicationContext.getBean(requiredType);
    }
}

上面这个工具类只有在被IOC容器加载完之后才会调用setApplicationContext,那么该怎么把工具类放到IOC容器中呢?我们使用@Import注解来实现,具体使用方法请看下面代码:


@SpringBootApplication
@Import({SpringContextUtil.class})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

注:不使用@Import也是可以的,例如在SpringContextUtil类上面标注@Component等类似的注解也是可以的。

@Import注解须知:

1.@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中

2.加入IOC容器的方式有很多种,@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 关于Springboot如何获取IOC容器

本文链接: https://www.lsjlt.com/news/132612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于Springboot如何获取IOC容器
    目录Springboot项目中获取IOC容器的方式方法一(不实用,不推荐):方法二(强烈推荐):总结Springboot项目中获取IOC容器的方式 在Springboot项目中如果要...
    99+
    2022-11-12
  • SpringBoot 如何从容器中获取对象
    目录如何从容器中获取对象SpringBoot中的容器容器功能1、组件添加2、原生配置文件引入(xml文件引入)3、配置绑定如何从容器中获取对象 有时候在项目中,我们会自己创建一些类,...
    99+
    2022-11-13
  • Springboot如何注入装配到IOC容器
    这篇文章主要介绍了Springboot如何注入装配到IOC容器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、通过bean注解装配到IOC容器  &nb...
    99+
    2023-06-25
  • 如何使用Springboot实现拦截器获取header内容
    小编给大家分享一下如何使用Springboot实现拦截器获取header内容,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!分析既然需要动态获取那么只有两种方式:要么每次下游请求过来时从请求头中获取,要么定义统一的拦截器自动...
    99+
    2023-06-15
  • springboot如何关掉tomcat容器
    目录springboot关掉tomcat容器springboot使用第三方tomcat1.改pom2.再加一个启动类3.打war包springboot关掉tomcat容器 有的时候需...
    99+
    2022-11-12
  • 关于aop切面注解、参数如何获取
    目录aop切面 注解、参数如何获取定义需要切面的注解在需要进行切面的方法标注注解定义切面aop中获取自定义注解的属性值自定义注解用在方法上获取注解的属性值aop切面 注解、参数如何获...
    99+
    2022-11-12
  • springboot接口如何多次获取request中的body内容
    1. 概述 在使用springboot开发接口时,会将参数转化为Bean,用来进行参数的自动校验。同时也想获取request中原始body报文进行验签(防止报文传输过程中被篡改)。 ...
    99+
    2022-11-12
  • Springboot拦截器如何获取@RequestBody参数
    Springboot拦截器获取@RequestBody参数 HttpContextUtils import javax.servlet.ServletRequest; impor...
    99+
    2022-11-12
  • springboot如何获取服务器ip和端口号
    在Spring Boot中,可以通过注入`ServerProperties`来获取服务器的IP和端口号。具体步骤如下:1. 在`ap...
    99+
    2023-08-09
    springboot 服务器
  • docker如何获取容器的启动命令
    这篇文章主要介绍docker如何获取容器的启动命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如何获取容器的启动命令容器早已创建好,如何得知它的启动参数(数据挂载到哪)#假设通过如下命令启动了一个容器docker&...
    99+
    2023-06-14
  • 如何获取docker容器里面的root权限
    这篇文章主要介绍如何获取docker容器里面的root权限,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先你的container得正在运行可通过sudo docker container ls或者sudo dock...
    99+
    2023-06-14
  • SpringBoot过滤器如何获取POST请求的JSON参数
    目录SpringBoot过滤器获取POST请求的JSON参数想到了使用过滤器来实现这个功能所以我们可以通过获取到输入流来获取body从源码我们可以看到我们创建一个类并继承这个包装类有...
    99+
    2022-11-12
  • Spring如何获取当前类在容器中的beanname
    这篇文章主要介绍“Spring如何获取当前类在容器中的beanname”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring如何获取当前类在容器中的beanname”文章能帮助大家解决问题。如下...
    99+
    2023-07-02
  • jquery如何获取富文本编辑器的内容
    在jquery中获取富文本编辑器内容的方法:1.新建html项目,引入jquery;2.使用UE.getEditor方法创建富文本编辑器;3.初始化编辑器;4.使用hasContents()方法判断内容;5.使用getContent()方法...
    99+
    2022-10-07
  • kubernetes中如何在容器内获取Pod信息 Downward API
    这篇文章主要为大家展示了“kubernetes中如何在容器内获取Pod信息 Downward API”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“kubernetes中如何在容器内获取Pod信息...
    99+
    2023-06-04
  • 利用JSP 如何实现获取spring容器中的bean
    这篇文章给大家介绍利用JSP 如何实现获取spring容器中的bean,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JSP 获取spring容器中bean的方法总结方案1(Web中使用):ApplicationCont...
    99+
    2023-05-31
    jsp spring bean
  • 一文讲解如何获取k8s容器里运行的jar包
    目录01 引言02 从镜像信息获取03 进入容器获取(推荐)04 文末01 引言 在k8s上运行了第三方的应用,很多时候我们都想知道运行流程,一般都会从k8s容器中获取jar包。 那...
    99+
    2022-11-13
  • 如何解决Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题
    这篇文章主要介绍如何解决Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!问题:使用getSe...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作