diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java index e734185684..201a88036d 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.amqp; +import com.rabbitmq.client.Channel; import org.springframework.amqp.core.AmqpAdmin; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit.connection.ConnectionFactory; @@ -30,55 +31,70 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.rabbitmq.client.Channel; - /** - * {@link EnableAutoConfiguration Auto-configuration} for {@link RabbitTemplate}. - * + *
{@link EnableAutoConfiguration Auto-configuration} for {@link RabbitTemplate}. + * + *
This configuration class is active only when the RabbitMQ and Spring AMQP client libraries are on the classpath. + * + *
Registers a {@link org.springframework.amqp.rabbit.core.RabbitTemplate RabbitTemplate} instance if there + * is no other bean of the same type in the context. Registers a {@link org.springframework.amqp.rabbit.connection.CachingConnectionFactory CachingConnectionFactory} + * instance if there is no other bean of the same type in the context. + * + *
Registers a {@link org.springframework.amqp.core.AmqpAdmin } instance as long as {@literal spring.rabbitmq.dynamic=true}. + * + *
+ * The {@link org.springframework.amqp.rabbit.connection.CachingConnectionFactory} honors the following properties: + * {@literal spring.rabbitmq.port} is used to specify the port to which the client should connect, and defaults to 5672. + * {@literal spring.rabbitmq.username} is used to specify the (optional) username, and + * {@literal spring.rabbitmq.password} is used to specify the (optional) password. + * {@literal spring.rabbitmq.host} is used to specify the host, and defaults to {@literal localhost}. + * {@literal spring.rabbitmq.virtualHost} is used to specify the (optional) virtual host to which the client should connect. + * * @author Greg Turnquist + * @author Josh Long */ @Configuration -@ConditionalOnClass({ RabbitTemplate.class, Channel.class }) +@ConditionalOnClass({RabbitTemplate.class, Channel.class}) @EnableConfigurationProperties(RabbitProperties.class) public class RabbitAutoConfiguration { - @Bean - @ConditionalOnExpression("${spring.rabbitmq.dynamic:true}") - @ConditionalOnMissingBean(AmqpAdmin.class) - public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) { - return new RabbitAdmin(connectionFactory); - } + @Bean + @ConditionalOnExpression("${spring.rabbitmq.dynamic:true}") + @ConditionalOnMissingBean(AmqpAdmin.class) + public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) { + return new RabbitAdmin(connectionFactory); + } - @Autowired - private ConnectionFactory connectionFactory; + @Autowired + private ConnectionFactory connectionFactory; - @Bean - @ConditionalOnMissingBean(RabbitTemplate.class) - public RabbitTemplate rabbitTemplate() { - return new RabbitTemplate(this.connectionFactory); - } + @Bean + @ConditionalOnMissingBean(RabbitTemplate.class) + public RabbitTemplate rabbitTemplate() { + return new RabbitTemplate(this.connectionFactory); + } - @Configuration - @ConditionalOnMissingBean(ConnectionFactory.class) - protected static class RabbitConnectionFactoryCreator { + @Configuration + @ConditionalOnMissingBean(ConnectionFactory.class) + protected static class RabbitConnectionFactoryCreator { - @Bean - public ConnectionFactory rabbitConnectionFactory(RabbitProperties config) { - CachingConnectionFactory factory = new CachingConnectionFactory( - config.getHost()); - factory.setPort(config.getPort()); - if (config.getUsername() != null) { - factory.setUsername(config.getUsername()); - } - if (config.getPassword() != null) { - factory.setPassword(config.getPassword()); - } - if (config.getVirtualHost() != null) { - factory.setVirtualHost(config.getVirtualHost()); - } - return factory; - } + @Bean + public ConnectionFactory rabbitConnectionFactory(RabbitProperties config) { + CachingConnectionFactory factory = new CachingConnectionFactory( + config.getHost()); + factory.setPort(config.getPort()); + if (config.getUsername() != null) { + factory.setUsername(config.getUsername()); + } + if (config.getPassword() != null) { + factory.setPassword(config.getPassword()); + } + if (config.getVirtualHost() != null) { + factory.setVirtualHost(config.getVirtualHost()); + } + return factory; + } - } + } } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/aop/AopAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/aop/AopAutoConfiguration.java index 6e37281153..523e831b30 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/aop/AopAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/aop/AopAutoConfiguration.java @@ -25,9 +25,15 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; /** - * {@link EnableAutoConfiguration Auto-configuration} for Spring AOP. - * + * + *
{@link org.springframework.boot.autoconfigure.EnableAutoConfiguration Auto-configuration}
+ * for Spring's AOP support. Equivalent to enabling {@link org.springframework.context.annotation.EnableAspectJAutoProxy}
+ * in your configuration. The configuration will not be activated if {@literal spring.aop.auto=false}.
+ * The {@literal proxyTargetClass} attribute will be {@literal false}, by default, but can be overridden by
+ * specifying {@literal spring.aop.proxyTargetClass=true}.
+ *
* @author Dave Syer
+ * @author Josh Long
* @see EnableAspectJAutoProxy
*/
@Configuration
diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/AbstractRepositoryConfigurationSourceSupport.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/AbstractRepositoryConfigurationSourceSupport.java
index 8a387544f1..30bd8b6490 100644
--- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/AbstractRepositoryConfigurationSourceSupport.java
+++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/AbstractRepositoryConfigurationSourceSupport.java
@@ -53,8 +53,7 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements
private Environment environment;
@Override
- public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
- final BeanDefinitionRegistry registry) {
+ public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
new RepositoryConfigurationDelegate(getConfigurationSource(), this.resourceLoader)
.registerRepositoriesIn(registry, getRepositoryConfigurationExtension());
}
@@ -68,7 +67,7 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements
public java.lang.Iterable Activates when there is a bean of type {@link javax.sql.DataSource} configured in the context,
+ * the Spring Data JPA {@link org.springframework.data.jpa.repository.JpaRepository} type is on the classpath,
+ * and there is no other, existing {@link org.springframework.data.jpa.repository.JpaRepository} configured.
+ *
+ * Once in effect, the auto-configuration is the equivalent of enabling JPA repositories using
+ * the {@link org.springframework.data.jpa.repository.config.EnableJpaRepositories} annotation.
+ *
+ * This configuration class will activate after the Hibernate auto-configuration.
+ *
* @author Phillip Webb
+ * @author Josh Long
* @see EnableJpaRepositories
*/
@Configuration
diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoRepositoriesAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoRepositoriesAutoConfiguration.java
index 8ff2b338d8..e6bd340e36 100644
--- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoRepositoriesAutoConfiguration.java
+++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoRepositoriesAutoConfiguration.java
@@ -30,9 +30,17 @@ import com.mongodb.Mongo;
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Mongo
* Repositories.
- *
+ *
+ * Activates when there is no bean of type {@link org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean} configured in the context,
+ * the Spring Data Mongo {@link org.springframework.data.mongodb.repository.MongoRepository} type is on the classpath,
+ * the Mongo client driver API is on the classpath, and there is no other configured {@link org.springframework.data.mongodb.repository.MongoRepository}.
+ *
+ * Once in effect, the auto-configuration is the equivalent of enabling Mongo repositories using
+ * the {@link org.springframework.data.mongodb.repository.config.EnableMongoRepositories} annotation.
+ *
* @author Dave Syer
* @author Oliver Gierke
+ * @author Josh Long
* @see EnableMongoRepositories
*/
@Configuration
diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoTemplateAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoTemplateAutoConfiguration.java
index b7f8284be4..8ef78cb2c0 100644
--- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoTemplateAutoConfiguration.java
+++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/MongoTemplateAutoConfiguration.java
@@ -31,11 +31,16 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie
import com.mongodb.Mongo;
/**
- * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's
- * {@link MongoTemplate}.
- *
+ * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's {@link MongoTemplate}.
+ *
+ * Registers a {@link org.springframework.data.mongodb.core.MongoTemplate} bean if no other bean of the same type is configured.
+ *
+ * Honors the {@literal spring.data.mongodb.database} property if set, otherwise connects to
+ * the {@literal test} database.
+ *
* @author Dave Syer
* @author Oliver Gierke
+ * @author Josh Long
* @see EnableMongoRepositories
*/
@Configuration