码迷,mamicode.com
首页 > 编程语言 > 详细

使用spring构建基础框架的基础API

时间:2015-09-30 11:26:41      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

一、获取对象类名

Class<?> handlerClass = ClassUtils.getUserClass(handler);

二、查询一个方法上是否有某注解

RequestMapping mapping = AnnotationUtils.findAnnotation(method, RequestMapping.class);

三、  获取实现某一接口的类

BeanFactoryUtils.beansOfTypeIncludingAncestors(context, HandlerMapping.class, true, false);

四、  获取某字符串对应的类对象

Class<?> clazz = ClassUtils.forName(className, this.getClass().getClassLoader()); 

五、使用spring上下文创建受托管bean

protected Object createDefaultStrategy(ApplicationContext context, Class<?> clazz) {
    return context.getAutowireCapableBeanFactory().createBean(clazz);
}

 

六、  获取某传入对象的类属性,并据此在spring容器中查找它的注册对象名称beanName

getApplicationContext().getBeanNamesForType(Object.class)

 

七、  根据传入对象类的父代来查询所有spring容器中注册的beanName

BeanFactoryUtils.beanNamesForTypeIncludingAncestors(getApplicationContext(), Object.class)

 

八、  在spring容器中根据beanName查找出此对象上的对应某注解,注意不是所有注解

ApplicationContext context = getApplicationContext();
RequestMapping mapping = context.findAnnotationOnBean(beanName, RequestMapping.class);

九、  spring用beanName找出此对象的类类型

Class<?> handlerType = context.getType(beanName);

 

Method methodToInvoke = BridgeMethodResolver.findBridgedMethod(initBinderMethod);

 

ReflectionUtils.makeAccessible(methodToInvoke);

 

十、  获取有某注解的对象

String[] beanNames = (this.detectHandlersInAncestorContexts ?
      BeanFactoryUtils.beanNamesForTypeIncludingAncestors(getApplicationContext(), Object.class) :
      getApplicationContext().getBeanNamesForType(Object.class));//获取所有beanName

for (String beanName : beanNames) {

Class<?> handlerType = context.getType(beanName);

ApplicationContext context = getApplicationContext();

if (AnnotationUtils.findAnnotation(handlerType, Controller.class) != null) {
  
}

}

 

十一、Spring collections静态方法

CollectionUtils.mergeArrayIntoCollection

使用spring构建基础框架的基础API

标签:

原文地址:http://my.oschina.net/fir01/blog/512696

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!