为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梦里花落0921 2022-06-30 18:40:30
有一次面试官问我这个问题,我也答不上来。我也在谷歌上搜索过,但我没有得到任何正确的答案。
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

请尝试下面给定的代码。


Map<String,Object> beans = ctx.getBeansWithAnnotation(Controller.class);

System.out.println(beans.size());

或者你可以用反射库试试这个。下面给出的片段可以在整个项目中搜索。


maven依赖:


org.reflections 反射 0.9.10


import org.reflections.Reflections;


public class FindAnnotation {



public static void main(String[] args) {

    System.out.println("Scanning using Reflections:");


    Reflections ref = new Reflections("com.some.package");

    for (Class<?> cl : ref.getTypesAnnotatedWith(Controller.class)) {

        //count

    }

}}


查看完整回答
反对 回复 2022-06-30
?
忽然笑

TA贡献1806条经验 获得超5个赞

This may helpful...


@SpringBootApplication

public class DemoApplication {


    public static void main(String[] args) {

        ApplicationContext applicationContext =SpringApplication.run(DemoApplication.class, args);


        Map<String,Object> beans = applicationContext.getBeansWithAnnotation(Controller.class);

        System.out.println(beans.size());

    }


}


查看完整回答
反对 回复 2022-06-30
?
大话西游666

TA贡献1817条经验 获得超14个赞

这当然取决于您尝试计算Controller豆子的方式。

编程方式

如果您将通过自定义部署的实用程序计算您的 bean(即实现的方法应该在类中能够ApplicationContext在运行时访问),那么之前建议的解决方案将是一个很好的选择。

同时,您应该注意Controller有条件部署的 bean。

弹簧执行器

如果您激活了Spring Actuator并启用了 beans 检查,您只需点击部署的端点以获取可用的 beans 并过滤JSON输出以获取您的*Controllerbeans。


查看完整回答
反对 回复 2022-06-30
  • 3 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信