如何在你的 spring 项目中计算所有具有 @Controllers 属性的类

有一次面试官问我这个问题,我也答不上来。我也在谷歌上搜索过,但我没有得到任何正确的答案。



梦里花落0921
浏览 92回答 3
3回答

阿晨1998

请尝试下面给定的代码。Map<String,Object> beans = ctx.getBeansWithAnnotation(Controller.class);System.out.println(beans.size());或者你可以用反射库试试这个。下面给出的片段可以在整个项目中搜索。maven依赖:org.reflections 反射 0.9.10import org.reflections.Reflections;public class FindAnnotation {public static void main(String[] args) {&nbsp; &nbsp; System.out.println("Scanning using Reflections:");&nbsp; &nbsp; Reflections ref = new Reflections("com.some.package");&nbsp; &nbsp; for (Class<?> cl : ref.getTypesAnnotatedWith(Controller.class)) {&nbsp; &nbsp; &nbsp; &nbsp; //count&nbsp; &nbsp; }}}

忽然笑

This may helpful...@SpringBootApplicationpublic class DemoApplication {&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; ApplicationContext applicationContext =SpringApplication.run(DemoApplication.class, args);&nbsp; &nbsp; &nbsp; &nbsp; Map<String,Object> beans = applicationContext.getBeansWithAnnotation(Controller.class);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(beans.size());&nbsp; &nbsp; }}

大话西游666

这当然取决于您尝试计算Controller豆子的方式。编程方式如果您将通过自定义部署的实用程序计算您的 bean(即实现的方法应该在类中能够ApplicationContext在运行时访问),那么之前建议的解决方案将是一个很好的选择。同时,您应该注意Controller有条件部署的 bean。弹簧执行器如果您激活了Spring Actuator并启用了 beans 检查,您只需点击部署的端点以获取可用的 beans 并过滤JSON输出以获取您的*Controllerbeans。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java