IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springboot使用上下文ApplicationContext -> 正文阅读

[Java知识库]springboot使用上下文ApplicationContext

一、spring上下文

1.1 什么是spring上下文

1.2 spring上下文的作用

二、如何使用spring上下文

有四种方式获得spring上下文

  • 方式一:实现ApplicationContextAware接口
  • 方式二:非static方法版
  • 方式三:在springboot引导类中设置
  • 方式四;直接注入ApplicationContext

2.1 实现ApplicationContextAware接口

提供static方法供调用者使用,不要求使用者受spring容器管理


package net.facelib.eam.plancenter.webController.service.impl;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * @author lc
 * @version 1.0
 * @date 2022/7/26 9:28
 */
@Component
public class MyTestService implements ApplicationContextAware {

    public static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        MyTestService.applicationContext = applicationContext;
    }

    public static ApplicationContext getApplicationContext() {
        return MyTestService.applicationContext;
    }

    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);
    }

    public static <T>T getBean(Class clazz) {
        return (T)getApplicationContext().getBean(clazz);
    }

    public static <T>T getBean(String name, Class clazz) {
        return (T)getApplicationContext().getBean(name,clazz);
    }
}

2.2 同方法一,但是是非static方法版

使用者也得是被spring管理的bean,注入使用

2.3 在springboot引导类(启动类)里设置,此时就不需要实现ApplicationContextAware接口

@SpringBootApplication
public class MainApplication{

	public static void main(String[] args) {
		ConfigutableApplicationContext context = SpringApplication.run(MainApplication.clss,args)
		MyTestService.setApplicationContext(context);
	}

}
package net.facelib.eam.plancenter.webController.service.impl;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * @author lc
 * @version 1.0
 * @date 2022/7/26 9:28
 */
@Component
public class MyTestService{

    public static ApplicationContext applicationContext;

   public static void setApplicationContext(ApplicationContext applicationContext) {
       MyTestService.applicationContext = applicationContext;
   }

    public static ApplicationContext getApplicationContext() {
        return MyTestService.applicationContext;
    }

    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);
    }

    public static <T>T getBean(Class clazz) {
        return (T)getApplicationContext().getBean(clazz);
    }

    public static <T>T getBean(String name, Class clazz) {
        return (T)getApplicationContext().getBean(name,clazz);
    }
}

2.4 直接注入ApplicationContext

@Component
public class ContextUser{

	// 在需要使用上下文的地方直接注入,前提,被spring管理
	@Autowired
	public ApplicationContext applicationContext;
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:40:46  更:2022-10-31 11:41:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 4:47:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码