我想将创建/解析目的地的细节封装到某种 DestinationResolver 实现中。
详细信息是创建连接、创建会话、创建/解析目标。
这样的实现会是一个坏方法吗?
public class SessionAwareDestinationResolver extends DynamicDestinationResolver {
private Session session;
@Inject
public SessionAwareDestinationResolver(ConnectionFactory connectionFactory) {
try {
Connection connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
} catch (JMSException ex) {
throw JmsUtils.convertJmsAccessException(ex);
}
}
public Destination resolveDestinationName(String destinationName,
boolean pubSubDomain) throws JMSException {
return super.resolveDestinationName(session, destinationName,
pubSubDomain);
}
}
更新
将特定任务包装在执行操作中是否会有更好的方法?