Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 获取JMS的已注释方法终结点_Spring_Jms_Spring Jms_Spring Annotations - Fatal编程技术网

Spring 获取JMS的已注释方法终结点

Spring 获取JMS的已注释方法终结点,spring,jms,spring-jms,spring-annotations,Spring,Jms,Spring Jms,Spring Annotations,有没有办法通过注释找到所有配置的方法jmsListenerEndpoint 我想用不同的消息侦听器容器注册所有这些端点 @JmsListener(destination = "TestQueue") public void process(String msg) { System.out.println(msg); } //TODO for all connections foreach(connections){ //TODO get all annotated endpoint

有没有办法通过注释找到所有配置的方法jmsListenerEndpoint

我想用不同的消息侦听器容器注册所有这些端点

@JmsListener(destination = "TestQueue")
public void process(String msg) {
    System.out.println(msg);
}

//TODO for all connections
foreach(connections){
 //TODO get all  annotated endpoints as prototype
    foreach(endpoint){
      MethodJmsListenerEndpoint processEndpoint = endpoint;
      registrar.registerEndpoint(processEndpoint,containerFactory(connection));
    }   
  }

根据您的提供者,您可以使用配置定制器bean(如HornetQConfigurationCustomizer)在此bean初始化期间操作任何设置


如果您的配置在运行时应该是真正可采用和可管理的,那么您根本不应该使用@JmsListener注释。只需在代码中注册它们,就像Spring建议的那样:

您可以在
@JmsListener
上指定要绑定到哪个容器。那么,您为什么需要或希望手动执行此操作呢?我们在每个环境中都有不同数量的连接,我们从DB中读取连接详细信息。然后使用
PropertySource
钩住您的DB内容,以便您可以使用标准配置机制。这将使您的整个配置更加容易。到目前为止,我正在采用相同的方法,只是想知道,如果有机制获取通过注释配置的MethodJMSLIEnterendPoint。这可以通过手动扫描这些注释的类来实现。您能帮我提供一个@Pavel Muravyov示例吗在jmsListenerNotationBeanPostProcessor内部,特别是在postProcessAfterInitialization()方法中的源代码。希望这对汉克斯很有帮助!这对我真是一个很大的帮助。