Spring---将Spring工程中的 xml 配置方式改为 全注解方式 (@Configuration)
举例若对于以下 xml 配置:<bean id="jcqConsumer" class="com.jcloud.jcq.spring.demo.consumer.JCQConsumer" init-method="start" destroy-method="shutdown"><!-- 消费者 --><property name="consumer" ref="co
·
举例若对于以下 xml 配置:
<bean id="jcqConsumer" class="com.jcloud.jcq.spring.demo.consumer.JCQConsumer" init-method="start" destroy-method="shutdown">
<!-- 消费者 -->
<property name="consumer" ref="consumer" />
<!-- 订阅的topic和对应的消息监听器的map -->
<property name="topicMessageListenerMap">
<map>
<entry key="test-message-proxy">
<bean class="com.jcloud.jcq.spring.demo.consumer.DefaultMessageListener" />
</entry>
</map>
</property>
<!-- 订阅的topic和对应的过滤条件的map -->
<property name="topicFilterExpressionMap">
<map>
<!-- 过滤条件为null -->
<entry key="test-message-proxy">
<null/>
</entry>
</map>
</property>
</bean>
修改为的配置注解类为:
@Bean(initMethod = "start", destroyMethod = "shutdown")
public JCQConsumer jcqConsumer(Consumer consumer, DefaultMessageListener defaultMessageListener) {
JCQConsumer jcqConsumer = new JCQConsumer();
// 消费者
jcqConsumer.setConsumer(consumer);
// 订阅的topic和对应的消息监听器的map
Map<String, MessageListener> topicMessageListenerMap = new HashMap<>();
topicMessageListenerMap.put("test-message-proxy", defaultMessageListener);
jcqConsumer.setTopicMessageListenerMap(topicMessageListenerMap);
// 订阅的topic和对应的过滤条件的map
Map<String, FilterExpression> topicFilterExpressionMap = new HashMap<>();
topicFilterExpressionMap.put("test-message-proxy", null);
jcqConsumer.setTopicFilterExpressionMap(topicFilterExpressionMap);
System.out.println(topicFilterExpressionMap.get("test-message-proxy"));
return jcqConsumer;
}
说明
- JCQConsumer为项目中自定义的类,其中定义了 start() 与 shutdown() 方法,在 配置类中使用注解
@Bean(initMethod = "start", destroyMethod = "shutdown")
标注 - bean的id 为方法名,class 为方法的返回值类型
- property 属性中若有 ref 项,应该添加到该 方法的入口参数中 ,如上的
<property name="consumer" ref="consumer" />
在配置类方法中应该添加参数Consumer consumer
,这里注意consumer
之前应该已经通过 @Bean 已添加到容器中
参考:https://blog.csdn.net/dawn2134/article/details/90940175

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)