spring BeanFactory getbean方法是怎么搜索出对应的类的


public interface BeanFactory {
    Object getBean(String name) throws BeansException;
    
    <T> T getBean(String name, Class<T> requiredType) throws BeansException;
    
    <T> T getBean(Class<T> requiredType) throws BeansException;
    
    ......
}

我用工具类:


import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
 
public class SpringContextUtil implements ApplicationContextAware {  
   private static ApplicationContext applicationContext;     //Spring应用上下文环境  
     
   public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {  
       SpringContextUtil.applicationContext = applicationContext;  
   }  

   public static ApplicationContext getApplicationContext() {  
     return applicationContext;  
   }  
    
   public static Object getBean(String name) throws BeansException {  
     return applicationContext.getBean(name);  
   } 
   
   public static <T> T getBean(Class<T> requiredType) {
       return applicationContext.getBean(requiredType);
   }
    
public static <T> T getBean(String name, Class<T> requiredType) throws BeansException {  
     return applicationContext.getBean(name, requiredType);  
   }  
    
   public static boolean containsBean(String name) {  
     return applicationContext.containsBean(name);  
   }  
    
   public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {  
     return applicationContext.isSingleton(name);  
   }  

   @SuppressWarnings("rawtypes")
public static Class getType(String name) throws NoSuchBeanDefinitionException {  
     return applicationContext.getType(name);  
   }  
    
   public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {  
     return applicationContext.getAliases(name);  
   }  
 }  

去获取spring的xml文件中的对象的时候,他们分别是怎样在xml中搜索匹配的?
getBean(Strng name) 应该是通过id或name来匹配的吧?
getBean(Class<> clzss) 呢?
另外哪里有这些用法的说明?


BeanFactory 上有 Class 到 bean_id 的 Map


这个就是装配Bean的机制。第二个getBean(Class<> clzss)明显是按照类型 获取,比方说,你要提取的Bean的类型是com.abc.def.test.service.LoginService
你只需要在这里给定参数是: getBean(com.abc.def.test.service.LoginService.class)
就可以得到一个LoginService的对象实例了



相关阅读:
antdesign的menu如何点击标签显示对应的内容呢
echarts插件 :嵌套环形图 怎么把值传入。代码如下。
介绍一个开源的带商品购买的CMS系统
关于比较运算符==
ckplayer连续播放的时候会卡在第一针
为什么不让浏览器能够直接跑PHP?而只有Javascript
springMVC或spring的异常信息,怎么返回给当前页面?
electron autoUpdater 签名
docker exec 报错,怎么回事?
一个父div下有两个子div和两个子input,如图1,如何使他们对齐成图2的样子?
session_save_path()方法的返回值怎么是“0"呢
为什么明明存在父节点,但是 .parentNode 函数却显示父节点为null?
css3 定义轨迹动画
vs2010下载nuget包的方法
内嵌app 的web 页面如何应用 app 内置的静态文件
部署到heroku后,无法发送邮件,哪里出了问题?
appendchild报错
nginx中,proxy_pass和rewrite执行顺序
js如何定义点击事件,弹出一个提醒事件后,2s消失,时间从点击按钮开始
如何修改URL地址中参数的值?



快速导航

Copyright © 2016 phpStudy |