是的,不同的Java应用程序可以同时向队列发送消息。
以下是一个使用ActiveMQ作为消息队列的示例代码:
import javax.jms.*;
public class MessageSender {
private Connection connection;
private Session session;
private Destination destination;
private MessageProducer producer;
public MessageSender() throws JMSException {
// 创建连接工厂
ConnectionFactory factory = new org.apache.activemq.ActiveMQConnectionFactory("tcp://localhost:61616");
// 创建连接
connection = factory.createConnection();
// 启动连接
connection.start();
// 创建会话
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建队列目标
destination = session.createQueue("myQueue");
// 创建生产者
producer = session.createProducer(destination);
}
public void sendMessage(String message) throws JMSException {
// 创建消息
TextMessage textMessage = session.createTextMessage(message);
// 发送消息
producer.send(textMessage);
}
public void close() throws JMSException {
// 关闭连接
connection.close();
}
}
使用上述代码,可以在不同的Java应用程序中创建MessageSender
实例,并调用sendMessage
方法来向队列发送消息。
示例代码中的tcp://localhost:61616
是ActiveMQ的默认连接地址,可以根据实际情况更改为相应的地址。