180.6. 将 JMX 用于您自己的 Camel 代码

180.6.1. 注册您自己的受管端点

作为 Camel 2.0
,您可以使用 Spring managed annotations @ManagedResource 分离您自己的端点,以便在 Camel MBeanServer 中注册它们,从而使用 JMX 访问您的自定义 MBean。

注意

Camel 2.1 中,我们进行更改以应用其他端点,但随后您需要实施接口 org.apache.camel.spi.ManagementAware。稍后将对此进行更多。

例如,我们有以下自定义端点,其中定义了要管理的一些选项:

@ManagedResource(description = "Our custom managed endpoint")
public class CustomEndpoint extends MockEndpoint implements ManagementAware<CustomEndpoint> {

    public CustomEndpoint(final String endpointUri, final Component component) {
        super(endpointUri, component);
    }

    public Object getManagedObject(CustomEndpoint object) {
        return this;
    }

    public boolean isSingleton() {
        return true;
    }

    protected String createEndpointUri() {
        return "custom";
    }

    @ManagedAttribute
    public String getFoo() {
        return "bar";
    }

    @ManagedAttribute
    public String getEndpointUri() {
        return super.getEndpointUri();
    }
}

Camel 2.9 开始,建议使用 org.apache.camel.api.management 软件包中的 @ManagedResource@ManagedAttribute@ManagedOperation。这允许您的自定义代码不依赖于 Spring JAR。