使用@Controller获取所有带注释的控制器
有没有办法获得所有控制器的列表,这些控制器是用@Controller
注释的? 我想用它们像:
@Autowired public void addAll(List controllers) throws Exception { for (Controller controller : controllers) { ... } }
谢谢!
getBeansWithAnnotation()
如果你用控制器注释了它们:
@Autowired private ListableBeanFactory listableBeanFactory;
然后
Map controllers; controllers = listableBeanFactory.getBeansWithAnnotation(Controller.class);
-
您也可以使用
和BeanFactory为您完成大部分操作的事实。@NimChimpsky
给出了一个很好的例子。 -
您可以使用其中任何一个扫描类路径
- AnnotationUtils.html#findAnnotationDeclaringClass
- 或者手动使用类似下面的示例代码
public List scanForComponents() { List components = new LinkedList (); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); scanner.addIncludeFilter(new AnnotationTypeFilter(Component.class)); for (String componentBasePacke : componentBasePackages) { for (BeanDefinition bd : scanner.findCandidateComponents(componentBasePacke)) { try { components.add(Class.forName(bd.getBeanClassName())); } catch (ClassNotFoundException ex) { } } } return components; }
- Hibernate / JPA注释 – 未知实体
- JSF 2使用@ManagedProperty注入Spring bean / service而没有xml
- 元素’mvc:annotation-driven’找不到声明
- Spring可以评估SpEL表达式中的所有字符/表达式,因为它们是从属性文件中注入的吗?
- 使用Jersey的AbstractHttpContextInjectable自定义方法注释不工作
- @OneToMany和复合主键?
- 如何使用@Inject批注在Java中堆叠自定义注释
- 为什么注释字符串值没有实现?
- jar305.jar中的注释是否应优先于FindBugs的annotation.jar中的类似注释?