[英]What's a good way to store class properties and load at run time?
我有一个消息传递生产者(RabbitMQ),根据我必须发送的消息类型,我需要更改路由密钥并在运行时进行交换。
鉴于此,我已经实施了一种策略来为每个类加载特定的属性,但这并不是一个好的解决方案。
例如:
public class MyProducerStrategy1 extends RabbitMessagingProducer {
private static final String ROUTING_KEY = "order1";
private static final String EXCHANGE = "myexchange1";
@Override
String getRoutingKey() {
return ROUTING_KEY;
}
@Override
String getExchange() {
return EXCHANGE;
}
@Override
public void sendMessage(Message message) {
super.sendMessage(message);
}
}
public class MyProducerStrategy2 extends RabbitMessagingProducer {
private static final String ROUTING_KEY = "fullfilment";
private static final String EXCHANGE = "myexchange2";
@Override
String getRoutingKey() {
return ROUTING_KEY;
}
@Override
String getExchange() {
return EXCHANGE;
}
@Override
public void sendMessage(Message message) {
super.sendMessage(message);
}
}
public abstract class RabbitMessagingProducer implements MessagingProducerStrategy {
@Autowired
private RabbitTemplate rabbitTemplate;
abstract String getRoutingKey();
abstract String getExchange();
@Override
public void sendMessage(Message message) {
rabbitTemplate.convertAndSend(getExchange(), getRoutingKey(), message);
}
}
是否有意义? 还是有另一种方法来加载属性并拥有一个类?
不要为此方案创建多个类。
根据消息从属性文件加载文件。
另一种选择是创建一个静态值映射,以消息类型作为键,并以路由键作为值。 根据消息类型从映射中获取值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.