amqp
对不起,我是世界上的新人。我尝试编写简单的应用程序:
public class HelloApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
final TestSender bean = context.getBean(TestSender.class);
bean.sendMessage();
}
}
@Component
public class TestSender {
@Autowired
private RabbitTemplate template;
public void sendMessage() {
final Message message = new Message("Sth".getBytes(), new MessageProperties());
template.send(message);
System.out.println("Was sent");
}
}
@Component
public class MessageReceiver implements ChannelAwareMessageListener{
@Override
public void onMessage(Message message, Channel channel) throws Exception {
System.out.println("RECEIVE "+message.getBody().toString());
}
和.xml
文件:
春天-amqp.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
<rabbit:connection-factory id="connectionFactory" host="localhost"/>
<rabbit:admin connection-factory="connectionFactory"/>
<rabbit:template connection-factory="connectionFactory" id="rabbitTemplate" channel-transacted="true"/>
<rabbit:queue name="userMesssageQueue" />
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="lis" queue-names="userMesssageQueue"/>
</rabbit:listener-container>
<bean id="transactionManager" class="org.springframework.amqp.rabbit.transaction.RabbitTransactionManager">
<property name="connectionFactory" ref="connectionFactory"/>
</bean>
<bean id="lis" class="foo.bar.MessageReceiver"/>
弹簧配置.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config />
<context:component-scan base-package="foo.bar"/>
<import resource="spring-amqp.xml"/>
</beans>
当我运行这个应用程序时,我看到:
Was sent
但我想看看:
Was sent
RECEIVE ...
怎么了??