pubsub sendto ogg ror contain pre ted new mman
ActiveMQ 在java中的使用,通过单例模式、工厂实现
一、导jar包
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>4.12</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jul-to-slf4j</artifactId>
- <version>1.6.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-all</artifactId>
- <version>5.13.3</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jms</artifactId>
- <version>4.3.1.RELEASE</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-messaging</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
二、java代码
1、连接工厂 配置
- package com.broadsense.iov.base.jms;
- import org.apache.activemq.ActiveMQConnectionFactory;
- import org.springframework.jms.connection.CachingConnectionFactory;
- /**
- * 连接工厂 配置
- *
- * @author flm
- * 2017年10月13日
- */
- public class ConnectionFactory {
- private static final String URL = "tcp://113.106.93.254:61616";
- private static final String USERNAME = "hkadmin";
- private static final String PASSWORD = "hk667";
- private static final int SESSIONCACHESIZE = 20;
- private javax.jms.ConnectionFactory factory;
- public static synchronized javax.jms.ConnectionFactory getInstance() {
- if (SingletonHolder.INSTANCE.factory == null) {
- SingletonHolder.INSTANCE.build();
- }
- return SingletonHolder.INSTANCE.factory;
- }
- private void build() {
- AMQConfigBean bean = loadConfigure();
- this.factory = buildConnectionFactory(bean);
- }
- private javax.jms.ConnectionFactory buildConnectionFactory(AMQConfigBean bean) {
- javax.jms.ConnectionFactory targetFactory = new ActiveMQConnectionFactory(bean.getUserName(), bean.getPassword(), bean.getBrokerURL());
- CachingConnectionFactory connectoryFacotry = new CachingConnectionFactory();
- connectoryFacotry.setTargetConnectionFactory(targetFactory);
- connectoryFacotry.setSessionCacheSize(bean.getSessionCacheSize());
- return connectoryFacotry;
- }
- private AMQConfigBean loadConfigure() {
- if ("tcp://113.106.93.254:61616" != null) {
- try {
- return new AMQConfigBean("tcp://100.100.10.100:61616", "hkadmin", "hk667", 20);
- } catch(Exception e) {
- throw new IllegalStateException("load amq config error!");
- }
- }
- throw new IllegalStateException("load amq config error!");
- }
- private static class AMQConfigBean {
- private String brokerURL;
- private String userName;
- private String password;
- private int sessionCacheSize;
- public AMQConfigBean() {}
- public AMQConfigBean(String brokerURL, String userName, String password, int sessionCacheSize) {
- this.brokerURL = brokerURL;
- this.userName = userName;
- this.password = password;
- this.sessionCacheSize = sessionCacheSize;
- }
- public String getBrokerURL() {
- return this.brokerURL;
- }
- public void setBrokerURL(String brokerURL) {
- this.brokerURL = brokerURL;
- }
- public String getUserName() {
- return this.userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return this.password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public int getSessionCacheSize() {
- return this.sessionCacheSize;
- }
- public void setSessionCacheSize(int sessionCacheSize) {
- this.sessionCacheSize = sessionCacheSize;
- }
- }
- private static class SingletonHolder {
- static ConnectionFactory INSTANCE = new ConnectionFactory(null);
- }
- }
2、模版
- package com.broadsense.iov.base.jms;
- import org.springframework.jms.core.JmsTemplate;
/**
* 模板厂
*
* @author flm
- public class JmsTemplateFactory
- {
- private final javax.jms.ConnectionFactory factory;
- private JmsTemplate topicJmsTemplate;
- private JmsTemplate queueJmsTemplate;
- public static JmsTemplateFactory getInstance()
- {
- return SingletonHolder.INSTANCE;
- }
- private JmsTemplateFactory()
- {
- this.factory = ConnectionFactory.getInstance();
- }
- public synchronized JmsTemplate getTopicJmsTemplate() {
- if (this.topicJmsTemplate == null) {
- this.topicJmsTemplate = createTemplate(this.factory, true);
- }
- return this.topicJmsTemplate;
- }
- public synchronized JmsTemplate getQueueJmsTemplate() {
- if (this.queueJmsTemplate == null) {
- this.queueJmsTemplate = createTemplate(this.factory, false);
- }
- return this.queueJmsTemplate;
- }
- private JmsTemplate createTemplate(javax.jms.ConnectionFactory factory, boolean pubSubDomain) {
- JmsTemplate template = new JmsTemplate(factory);
- template.setPubSubDomain(pubSubDomain);
- return template;
- }
- public static class SingletonHolder
- {
- static JmsTemplateFactory INSTANCE = new JmsTemplateFactory(null);
- }
- }
来源: http://www.bubuko.com/infodetail-2351293.html