使用上下文获取java接口实例,对象等

package com.tythin.tyboot.rest.thread;

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

/**
 * 上下文工具类
 * @author  kql
 */
@Component
public class SpringContextUtil implements ApplicationContextAware {
    /**
     * 上下文对象实例
     */
    private static ApplicationContext applicationContext;

    @SuppressWarnings("static-access")
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }

    /**
     * 获取applicationContext
     *
     * @return
     */
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    /**
     * 通过name获取 Bean.
     *
     * @param name
     * @return
     */
    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);
    }

    /**
     * 通过class获取Bean.
     *
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(Class<T> clazz) {
        return getApplicationContext().getBean(clazz);
    }

    /**
     * 通过name,以及Clazz返回指定的Bean
     *
     * @param name
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(String name, Class<T> clazz) {
        return getApplicationContext().getBean(name, clazz);
    }

}

业务代码中 ,获取对象

//线程中获取实例

SignService signService = SpringContextUtil.getBean(SignService.class);

原文地址:https://www.cnblogs.com/woshuaile/p/11791247.html

时间: 2024-08-30 09:05:59

使用上下文获取java接口实例,对象等的相关文章

获取Java接口的所有实现类

获取Java接口的所有实现类 前言:想看基于spring 的最简单实现方法,请直接看 第七步. 本文价值在于 包扫描的原理探究和实现 一.背景 项目开发中,使用Netty做服务端,保持长连接与客户端(agent)通讯.Netty服务端需要根据不同消息类型,加载对应的Processer(消息处理器)对消息进行处理.问题就出现了,Processer会随着消息业务类型增多进行扩展,每一次增加Processer都需要手动new出来一个实例,放到Map里(key为消息类型码,value为Processer

Selenium_Python接口-实例对象操作类WebDriver

WebDriver路径:from selenium.webdriver.remote.webdriver import WebDriver WebDriver内容:打开指定网页.执行js脚本.获取页面url.cook操作.多窗口及内嵌窗口的切换.窗口尺寸.窗口尺寸设置.窗口截图等 接口内容: # Licensed to the Software Freedom Conservancy (SFC) under one# or more contributor license agreements.

Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别(转)

一.Java的反射机制   每个Java程序执行前都必须经过编译.加载.连接.和初始化这几个阶段,后三个阶段如下图:  其中 i.加载是指将编译后的java类文件(也就是.class文件)中的二进制数据读入内存,并将其放在运行时数据区的方法区内,然后再堆区创建一个Java.lang.Class对象,用来封装类在方法区的数据结构.即加载后最终得到的是Class对象,并且更加值得注意的是:该Java.lang.Class对象是单实例的,无论这个类创建了多少个对象,他的Class对象时唯一的!!!!.

Beetl通过JAVA接口获取JAVA中的变量

模板语言绑定变量都是程序主动绑定到beetl,经过努力现在在beetl上实现了模板语言主动发出请求,来执行绑定. 最近做项目用到beetl,因为模板需要用到的变量很多,如果直接绑定,系统消耗很大. 产生了一个想法,当beetl解析不到变量的时候,通过JAVA接口直接获取对象返回给BEETL继续进行解析. 最终实现了Beetl主动发起绑定变量的功能. 修改的代码见最后. 调用时的代码如下: StringTemplateResourceLoader resourceLoader = new Stri

Java笔记之对象代理实例

简介即ProxyPattern,23种java常用设计模式之一.代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问,下面我们一起来看看Java对象代理的一些笔记吧. 代码如下复制代码 import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; //代理需要实现的接口 interface IVehical { //例如我这里写了两个

java 第十一天 面向对象(高级篇之接口、对象的多态性,instanceof)

接口的基本概念:接口的访问权限是public,关键字interface,子类通过implements关键字实现接口.一个子类可以同时实现多个接口. 对象的多态性: 两种体现形式:(1)方法的重载与覆写.(2)对象的多态性. 对象的多态性分两种: (1)向上转型:子类对象--→父类对象 (2)向下转型:父类对象--→子类对象 java中可以使用instanceof关键字判断对象到底是哪个类的实例 java 第十一天 面向对象(高级篇之接口.对象的多态性,instanceof),码迷,mamicod

获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中)

import java.io.File; import java.io.FileFilter; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.List; public class huoquwenjian { /*获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中) * 思路: * 1,既然包含子目录,就需要递归. * 2

Java虚拟机学习--对象实例的创建

1.实例化过程:     在语言层面克隆对象,创建对象,反序列化生成对象都是通过new关键字,虚拟机遇到一条new指令后先检查所实例化的类是否加载(加载后则类存在),是否解析,是否初始化,然后再为新生对象分配内存空间(存放在堆中),设置对象实例的对象头,,将对象体置零,然后执行<init>方法 2.内存分配:GC收集器的算法--->>(是否带有压缩整理功能)GC收集器的种类--->>java堆内存是否规整(规整是指内存是否是由完整的一整块的小块内存组成,比如已经使用过的

JAVA类与对象---实例变量与类变量的区别,实例方法和类方法的区别

实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被一个方法.构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息: 实例变量对于类中的方法.构造方法或者语句块是可见的.一般情况下应该把实例变量设为私有.通过使用访问修饰符可以使实例变量对子类可见 实例变量具有默认值.数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默