初始化Bean到Spring

Posted 专注于技术的小石头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初始化Bean到Spring相关的知识,希望对你有一定的参考价值。

public static<T> T getBean(Class<T> clazz) {
		T t = null;
		try {
			//throw new NoSuchBeanDefinitionException("");
			t =  getApplicationContext().getBean(clazz);
		} catch (NoSuchBeanDefinitionException e) {
			if(clazz.isInterface()){
				 HSFSpringConsumerBean consumer=new HSFSpringConsumerBean();
				 consumer.setInterfaceName(clazz.getName());
				 consumer.setVersion("1.0.0");
				 consumer.setGroup("light");
				 try {
					consumer.init();
					 t = (T) consumer.getObject();
				} catch (Exception e1) {
					throw new CommonException(String.format("error to consume the service %s.",clazz.getName()),e);
				}
			}else{
				String nameString  =clazz.getSimpleName();
				nameString = (nameString.substring(0, 1)).toLowerCase()+nameString.substring(1);
				if(SpringContextUtil.registry!=null){
					boolean containBean = SpringContextUtil.containsBean(nameString);
					if (!containBean) {
						registry.registerBeanDefinition(nameString, SpringContextUtil.getDefinition(clazz));
					}
					Object o = getApplicationContext().getBean(nameString);
					t = (T) o;  
				}
			}
		}
		return t;
	}

  

以上是关于初始化Bean到Spring的主要内容,如果未能解决你的问题,请参考以下文章

如何获取容器中的bean对象

一次Spring Bean初始化顺序问题排查记录

初始化Bean到Spring

Spring Bean 在容器的生命周期是什么样的?

Spring在代码中获取bean的几种方式(转)

Spring Boot - 在初始化 DataSource bean 之前运行自定义代码