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();