RabbitMQ est une implémentation AMQP couramment utilisée. Cet article est un tutoriel simple sur l'intégration de RabbitMQ à Spring Boot.
Installez ActiveMQ Server (vous ne pouvez pas non également l'installer. S'il n'est pas installé, vous utiliserez Memory MQ)
Construisez le projet Spring Boot et ajoutez des dépendances. Ajoutez simplement cet article
<! - Ajouter une dépendance activeMQ -> <dependency> <proupId> org.springframework.boot </prôdId> <ArtefactId> printemps-boot-starter-activermq </ artifactid> </ Dependency>
Ajouter une classe d'application
@ SpringbootApplication @ ActiveScheDuling // Envoyer des messages à l'aide d'une tâche chronométrée publique MQTestApplication {public static void main (String [] args) {SpringApplication.Run (mqTestApplication.class, args); }} Configurer application.yml
Spring: ActiveMQ: Broker-URL: TCP: //127.0.01: 61616 Packages: Trust-All: True
Pour créer un modèle de données, les types de données qui peuvent être envoyés et consommés sont: chaîne, tableau d'octets, carte <chaîne ,?>, objet sérialisable.
// Si le message envoyé est un objet, il doit implémenter la classe publique d'interface sérialisable TModel implémente Serializable {private static final long SerialVersionUID = -921008687184331557l; Count int privé; public tmodel (int count) {this.count = count; } @Override public String toString () {return "tmodel [count =" + count + "]"; }} Construire un producteur
@ComponentPublic Class Producer {// Inject JMstemplate dans le producteur, nous pouvons envoyer des messages via ce modèle JMSTEMPLAT JMSTEMPLAT privé; INT privé Count = 0; @Autowired Public Producer (JMstemlate JMstemPlate) {this.jmstemPlate = jMSteMplate; } // Ici, nous utilisons la tâche chronométrée de Spring Boot pour envoyer des messages @scheduled (fixeRrate = 1000) public void create () {// Utilisez ConvertandSennd pour envoyer des messages jmstemplate.convertandSend ("Queue1", new tmodel (count ++)); }} Construire le consommateur
@ComponentPublic Class Consumer {@jmsListener (Destination = "Queue1") public void comSume (TMODEL Content) {System.out.println ("Recive Message à partir de la queue1 [" + Contenu + "]"); }}Remarque spéciale: Si nos producteurs et nos consommateurs sont dans différents modules, il est préférable de résumer les données à consommer dans un module public. Le programme sérialise et désérialise les objets par sérialisable. Il est nécessaire de s'assurer que le SErialVersionUid du modèle d'objet du producteur et du consommateur est cohérent.
Adresse du projet: https://github.com/ldwqh0/active-mq-spring.git
Exemple: configurez Rabbitmq et ajoutez une file d'attente
@ConfigurationPublic class Aqueue {@BeanPublic Queue Queue () {return nouvelle file d'attente ("bon");}}Définir un producteur.
Lorsque ActiveMQ est activé, un Amqptemplate sera automatiquement créé, qui peut être injecté partout où vous avez besoin. Nous pouvons envoyer des messages à MQ via cet Amqptemplate
/ *** définir un producteur * @author lidong * / @ restController @ requestmapping ("/ test") public class SendController {@autowiredprivate amqptemplate modèle; @getmappingpublic string testsend () {// envoyer un message en utilisant un modèle amqptemplate. Définissez le consommateur, spécifiez la file d'attente de la consommation en spécifiant RabbitListener (files d'attente = «bon»)
@ComponentPublic Class Consumer {/ *** Define a Consumer * @param message * / @ labbitListener (quelles = "GOOD") public void Handler (String Message) {System.out.println ("Recive Message à partir de" + message);}}Démarrez le test et entrez http: // localhost: 8080 / Test dans le navigateur pour envoyer un message à la file d'attente. Cette paire de colonnes peut être traitée par le consommateur
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.