spring 源码分析 接口方法 (ApplicationContext 应用上下文)

ApplicationContext 接口方法介绍

ApplicationContext 接口方法:

	String getId(); 				//获取id
	
	String getApplicationName();  	//获取应用名
	
	String getDisplayName();  		//获取应用显示名称
	
	long getStartupDate();  		//获取应用启动时间
	
	ApplicationContext getParent(); //获取父级应用上下文
	
	AutowireCapableBeanFactory getAutowireCapableBeanFactory();  //获取bean工厂(DefaultListableBeanFactory)

ApplicationContext 继承的接口介绍(六个):


1、EnvironmentCapable 接口(环境装配)
	// 获取环境配置
	Environment getEnvironment();
2、ListableBeanFactory 接口(bean列表)

ListableBeanFactory 扩展 BeanFactory 接口(下面有介绍)

	//是否包含bean名称的bean定义
	boolean containsBeanDefinition(String beanName);
	
	//获取Bean定义注册数量
	int getBeanDefinitionCount(); 
	
	//获取所有Bean定义名称的数组
	String[] getBeanDefinitionNames(); 
	
	//获取ResolvableType对象中type属性对应的所有bean名称(数组)
	String[] getBeanNamesForType(ResolvableType type);
	
	//获取class类型的bean名称(数组)
	String[] getBeanNamesForType(Class<?> type); 
	
	//获取class类型的bean名称(数组).	包含单例、允许初始化的
	String[] getBeanNamesForType(Class<?> type, boolean includeNonSingletons, boolean allowEagerInit);
	
	//获取class类型的bean映射  
	<T> Map<String, T> getBeansOfType(Class<T> type); 
	
	//获取class类型的bean映射.	包含单例、允许初始化的
	<T> Map<String, T> getBeansOfType(Class<T> type, boolean includeNonSingletons, boolean allowEagerInit);
	
	//通过注解class获取bean名称(数组)
	String[] getBeanNamesForAnnotation(Class<? extends Annotation> annotationType);
	
	//通过注解class获取bean监映射
	Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotationType);
	
	//通过bean名称, 及注解类型. 直接返回该bean的注解对象. 可以通过注解对象获取注解属性的值
	<A extends Annotation> A findAnnotationOnBean(String beanName, Class<A> annotationType);

BeanFactory 工厂方法介绍:

	Object getBean(String name) throws BeansException;		//根据bean名称, 获取bean实例
	
	<?>   T getBean(Class<?>    requiredType);				//根据class类型,  获取bean实例
	
	boolean containsBean(String name);						//检测是否包含该bean的名称
	
	boolean isSingleton(String name);						//检测是否bean名称是否单例
	
	boolean isPrototype(String name);						//检测是否bean名称是否原型
	
	Class<?> getType(String name);							//根据bean名称, 返回class类型
	
	String[] getAliases(String name);						//根据bean名称, 返回所有别名
	....
3、HierarchicalBeanFactory 接口(层次bean工厂)

HierarchicalBeanFactory 也扩展 BeanFactory

	//获取上级工厂
	BeanFactory getParentBeanFactory(); 
	
	//是否包含bean
	boolean containsLocalBean(String name); 
4、MessageSource 接口(消息资源)
	//获取消息信息
	String getMessage(String code, Object[] args, String defaultMessage, Locale locale);
	String getMessage(String code, Object[] args, Locale locale);
	String getMessage(MessageSourceResolvable resolvable, Locale locale);
5、ApplicationEventPublisher 接口(应用事件发布)
	//发布事件
	void publishEvent(Object event);
	
	//发布应用事件
	default void publishEvent(ApplicationEvent event) {
		publishEvent((Object) event);
	}
6、ResourcePatternResolver 接口(资源分解器)

ResourcePatternResolver 继承 资源加载器 接口, ResourceLoader 可扩展二个方法。
1)获取类加载器 ClassLoader
2)根据路径获取对应资源 Resource

	String CLASSPATH_ALL_URL_PREFIX = "classpath*:";	//路径前置
	//根据路径, 获取资源列表
	Resource[] getResources(String locationx);
	
	//  ResourcePatternResolver 继承 ResourceLoader 接口
			String CLASSPATH_URL_PREFIX = "classpath:";	//文件路径前置
			//根据文件路径,获取资源Resource
			Resource getResource(String location); 
			//获取类加载器   
			ClassLoader getClassLoader(); 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值