我想做的是让jar文件配置好消息队列。 我的项目结构如下:我在模拟模拟器中有春季启动应用程序,它使用 mq-api 模块(就Maven而言)
模拟器
var planetSystem={
"_id": "123123123",
"key1": "value1",
"key2": "value2",
"arr": [{
"amount": "678",
"addedBy": "idontknow",
"commission": "100"
}, {
"amount": "800",
"addedBy": "iwishiknew",
"commission": "108"
}]}
MQ-API
package emulator;
@ComponentScan(basePackageClasses = {MqConfig.class})
@SpringBootApplication
public class Application {
static final Logger log = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) throws InterruptedException {
SpringApplication.run(Application.class, args);
}
}
mq-api.jar 中的mq.properties
package mq;
@Configuration
@EnableRabbit
@ImportResource(value = "classpath:/mq.properties", reader = PropertiesBeanDefinitionReader.class)
public class MqConfig {
@Bean
public TopicExchange topicExchange() {
return new TopicExchange("exc");
}
}
运行模拟器应用程序我有例外:
spring.rabbitmq.host=localhost
如果我删除 @ImportResource 应用程序启动时没有错误,当然会跳过配置文件 mq.properties
我使用spring boot 1.3.0(boot-starter,* -starter-amqp)
答案 0 :(得分:2)
作为@M。 Deinum指出,@ImportResource
用于从XML文件导入bean定义。它不会用于加载属性文件。要加载属性文件,您可以使用@PropertySource
。看看这个post就如何做到这一点的一个很好的例子。