/**
* @Configuration和@Configurable的区别
* @Configurable:
* 一般情况下spring无法对new的对象进行依赖注入,此注解可以告诉Spring在
* 构造函数运行之前将依赖注入到对象中。
*
* @Configuration:
* 定义配置类,用来替换xml文件的,可以在方法上加@Bean注解定义其中的Bean
*/
@Configuration
public class RabbitMQConfig {
@Value("${email.emailQueueName}")
private String emailQueueName;
@Value("${email.emailExchangeName}")
private String emailExchangeName;
@Value("${email.emailRouting}")
private String emailRouting;
/**
* name:名字
* durable:是否持久化
* exclusive:是否唯一
* autoDelete:是否自动删除
*/
@Bean
public TopicExchange emailExchange() {
return new TopicExchange(emailExchangeName,true,false);
}
@Bean
public Queue emailQueue(){
return new Queue(emailQueueName,true,false,false);
}
@Bean
public Binding emailQueueBindingExchange(){
return BindingBuilder.bind(emailQueue()).to(emailExchange()).with(emailRouting);
}
}
@Configurable
class Config{
@Autowired
private String email;
@Autowired
private String emailRouting;
public void startCar() {
email.concat("1");
emailRouting.getBytes();
System.out.println("Car started");
}
}