Java Spring启动:Jmx注释在库中不工作

Java Spring启动:Jmx注释在库中不工作,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个Spring引导应用程序,它只有一个简单的rest控制器。在这个控制器上,我添加了jmx注释@ManagedResource和@ManagedOperation,它工作正常。它在Jmx中正确地公开。 这个应用程序依赖于一个全球通用库来为我们的所有模块共享许多基本功能 但是,如果我向这个库中的类添加相同的注释,它将被忽略! 在您询问之前,是的,该库已导入最新的更改。 日志中没有错误或警告消息 我正在使用xml文件配置我的所有bean。这两个类都是在同一个文件中定义的bean。 一个是@Re

我有一个Spring引导应用程序,它只有一个简单的rest控制器。在这个控制器上,我添加了jmx注释@ManagedResource和@ManagedOperation,它工作正常。它在Jmx中正确地公开。 这个应用程序依赖于一个全球通用库来为我们的所有模块共享许多基本功能

但是,如果我向这个库中的类添加相同的注释,它将被忽略! 在您询问之前,是的,该库已导入最新的更改。 日志中没有错误或警告消息

我正在使用xml文件配置我的所有bean。这两个类都是在同一个文件中定义的bean。 一个是@RestController。另一个是一个简单的实用程序类


有什么想法吗?

确保全球公共资源库中的类由Spring管理。只要库中没有一个类是由Spring管理的,注释就没有任何效果

我发现了问题: 未工作的bean被定义为内部bean:

<bean id="imMetrics" class="com.imetrik.global.common.metrics.ImGlobalMetrics" init-method="init">
    ...
    <property name="reporterList">
        <util:list>
            <bean id="jmxReporter" class="com.imetrik.global.common.metrics.reporters.ImJmxReporter">
                <property name="registryId" value="metricRegistry1"/>
                <property name="durationUnit" value="SECONDS"/>
                <property name="rateUnit" value="SECONDS"/>
                <property name="domain" value="com.imetrik.global.metric"/>
            </bean>
        </util:list>
    </property>
</bean>
带注释的bean是jmxReporter

但是如果我把它作为一个普通的一级bean放在外部,并使用一个引用,它就可以工作了。
但这很烦人!有没有办法让它即使作为一个内在的豆子也能工作?

是的。就像我说的,这两个类都是在同一个SpringXML文件中定义的。