Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
0ce7be44
Commit
0ce7be44
authored
Jul 07, 2015
by
Lucas Saldanha
Committed by
Stephane Nicoll
Jul 07, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add AMQP section to the documetation
Closes gh-3348
parent
61c52582
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
134 additions
and
0 deletions
+134
-0
spring-boot-features.adoc
spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
+134
-0
No files found.
spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
View file @
0ce7be44
...
@@ -2934,6 +2934,140 @@ more details.
...
@@ -2934,6 +2934,140 @@ more details.
[[boot-features-amqp]]
=== AMQP
The Advanced Message Queuing Protocol (AMQP) is a platform-neutral, wire-level protocol for
message-oriented middleware. The Spring AMQP project applies core Spring concepts to the development of
AMQP-based messaging solutions.
[[boot-features-rabbitmq]]
==== RabbitMQ support
RabbitMQ is a lightweight, reliable, scalable and portable message broker based on the AMQP protocol.
Spring uses RabbitMQ to communicate using the AMQP protocol.
RabbitMQ configuration is controlled by external configuration properties in
`+spring.rabbitmq.*+`. For example, you might declare the following section in
`application.properties`:
[source,properties,indent=0]
----
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
----
See
{sc-spring-boot-autoconfigure}/amqp/RabbitProperties.{sc-ext}[`RabbitProperties`]
for more of the supported options.
TIP: Check http://spring.io/blog/2010/06/14/understanding-amqp-the-protocol-used-by-rabbitmq/[Understanding AMQP, the protocol used by RabbitMQ]
for more details.
[[boot-features-using-amqp-template]]
[[boot-features-using-amqp-sending]]
==== Sending a message
Spring's `AmqpTemplate` and `AmqpAdmin` are auto-configured and you can autowire them directly into your own
beans:
[source,java,indent=0]
----
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
private final AmqpAdmin amqpAdmin;
private final AmqpTemplate amqpTemplate;
@Autowired
public MyBean(AmqpAdmin amqpAdmin, AmqpTemplate amqpTemplate) {
this.adminTemplate = adminTemplate;
this.amqpTemplate = amqpTemplate;
}
// ...
}
----
To send a message you should declare a queue using `AmqpAdmin` and then use `AmqpTemplate` to send
the message to the declared queue.
[source,java,indent=0]
----
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
// ...
@PostConstruct
public void setUpQueue() {
this.amqpAdmin.declareQueue(new Queue("foo"));
}
public void send() {
this.rabbitTemplate.convertAndSend("foo", "hello");
}
}
----
[[boot-features-using-amqp-receiving]]
==== Receiving a message
Spring's `ConnectionFactory` is auto-configured and you can autowire it directly into your own
beans.
To receive a message from a queue you should create a `SimpleMessageListenerContainer`
using the configured `ConnectionFactory`. The `SimpleMessageListenerContainer` is
responsible for handling incoming messages through it's `MessageListenerAdapter`.
[source,java,indent=0]
----
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
@SpringBootApplication
public class AmqpDemoApplication {
@Autowired
private ConnectionFactory connectionFactory;
@Bean
public SimpleMessageListenerContainer container() {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(
this.connectionFactory);
MessageListenerAdapter adapter = new MessageListenerAdapter(new Object() {
public void handleMessage(String msg) {
System.out.println(msg);
}
});
container.setMessageListener(adapter);
container.setQueueNames("foo");
return container;
}
// ...
}
----
In the code above the `SimpleMessageListenerContainer` was configured to receive messages from the declared "foo" queue.
When a message is sent to "foo" queue it will be delivered to the handleMessage(String msg) method.
[[boot-features-email]]
[[boot-features-email]]
== Sending email
== Sending email
The Spring Framework provides an easy abstraction for sending email using the
The Spring Framework provides an easy abstraction for sending email using the
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment