Commit 9453a632 authored by Josh Long's avatar Josh Long Committed by Dave Syer

polishing documentation

parent da7d5433
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package org.springframework.boot.autoconfigure.amqp; package org.springframework.boot.autoconfigure.amqp;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.AmqpAdmin; import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.connection.ConnectionFactory;
...@@ -30,55 +31,70 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties ...@@ -30,55 +31,70 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.rabbitmq.client.Channel;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for {@link RabbitTemplate}. * <P> {@link EnableAutoConfiguration Auto-configuration} for {@link RabbitTemplate}.
* *
* <p> This configuration class is active only when the RabbitMQ and Spring AMQP client libraries are on the classpath.
*
* <P> 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.
*
* <p> Registers a {@link org.springframework.amqp.core.AmqpAdmin } instance as long as {@literal spring.rabbitmq.dynamic=true}.
*
* <p>
* 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 Greg Turnquist
* @author Josh Long
*/ */
@Configuration @Configuration
@ConditionalOnClass({ RabbitTemplate.class, Channel.class }) @ConditionalOnClass({RabbitTemplate.class, Channel.class})
@EnableConfigurationProperties(RabbitProperties.class) @EnableConfigurationProperties(RabbitProperties.class)
public class RabbitAutoConfiguration { public class RabbitAutoConfiguration {
@Bean @Bean
@ConditionalOnExpression("${spring.rabbitmq.dynamic:true}") @ConditionalOnExpression("${spring.rabbitmq.dynamic:true}")
@ConditionalOnMissingBean(AmqpAdmin.class) @ConditionalOnMissingBean(AmqpAdmin.class)
public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) { public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory); return new RabbitAdmin(connectionFactory);
} }
@Autowired @Autowired
private ConnectionFactory connectionFactory; private ConnectionFactory connectionFactory;
@Bean @Bean
@ConditionalOnMissingBean(RabbitTemplate.class) @ConditionalOnMissingBean(RabbitTemplate.class)
public RabbitTemplate rabbitTemplate() { public RabbitTemplate rabbitTemplate() {
return new RabbitTemplate(this.connectionFactory); return new RabbitTemplate(this.connectionFactory);
} }
@Configuration @Configuration
@ConditionalOnMissingBean(ConnectionFactory.class) @ConditionalOnMissingBean(ConnectionFactory.class)
protected static class RabbitConnectionFactoryCreator { protected static class RabbitConnectionFactoryCreator {
@Bean @Bean
public ConnectionFactory rabbitConnectionFactory(RabbitProperties config) { public ConnectionFactory rabbitConnectionFactory(RabbitProperties config) {
CachingConnectionFactory factory = new CachingConnectionFactory( CachingConnectionFactory factory = new CachingConnectionFactory(
config.getHost()); config.getHost());
factory.setPort(config.getPort()); factory.setPort(config.getPort());
if (config.getUsername() != null) { if (config.getUsername() != null) {
factory.setUsername(config.getUsername()); factory.setUsername(config.getUsername());
} }
if (config.getPassword() != null) { if (config.getPassword() != null) {
factory.setPassword(config.getPassword()); factory.setPassword(config.getPassword());
} }
if (config.getVirtualHost() != null) { if (config.getVirtualHost() != null) {
factory.setVirtualHost(config.getVirtualHost()); factory.setVirtualHost(config.getVirtualHost());
} }
return factory; return factory;
} }
} }
} }
...@@ -25,9 +25,15 @@ import org.springframework.context.annotation.Configuration; ...@@ -25,9 +25,15 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.EnableAspectJAutoProxy;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for Spring AOP. *
* * <p> {@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 Dave Syer
* @author Josh Long
* @see EnableAspectJAutoProxy * @see EnableAspectJAutoProxy
*/ */
@Configuration @Configuration
......
...@@ -53,8 +53,7 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements ...@@ -53,8 +53,7 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements
private Environment environment; private Environment environment;
@Override @Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
final BeanDefinitionRegistry registry) {
new RepositoryConfigurationDelegate(getConfigurationSource(), this.resourceLoader) new RepositoryConfigurationDelegate(getConfigurationSource(), this.resourceLoader)
.registerRepositoriesIn(registry, getRepositoryConfigurationExtension()); .registerRepositoriesIn(registry, getRepositoryConfigurationExtension());
} }
...@@ -68,7 +67,7 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements ...@@ -68,7 +67,7 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements
public java.lang.Iterable<String> getBasePackages() { public java.lang.Iterable<String> getBasePackages() {
return AbstractRepositoryConfigurationSourceSupport.this return AbstractRepositoryConfigurationSourceSupport.this
.getBasePackages(); .getBasePackages();
}; }
}; };
} }
......
...@@ -35,8 +35,18 @@ import org.springframework.data.web.config.EnableSpringDataWebSupport; ...@@ -35,8 +35,18 @@ import org.springframework.data.web.config.EnableSpringDataWebSupport;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's JPA Repositories. * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's JPA Repositories.
* *
* <p> 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.
*
* <p> Once in effect, the auto-configuration is the equivalent of enabling JPA repositories using
* the {@link org.springframework.data.jpa.repository.config.EnableJpaRepositories} annotation.
*
* <p> This configuration class will activate <em>after</em> the Hibernate auto-configuration.
*
* @author Phillip Webb * @author Phillip Webb
* @author Josh Long
* @see EnableJpaRepositories * @see EnableJpaRepositories
*/ */
@Configuration @Configuration
......
...@@ -30,9 +30,17 @@ import com.mongodb.Mongo; ...@@ -30,9 +30,17 @@ import com.mongodb.Mongo;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Mongo * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Mongo
* Repositories. * Repositories.
* *
* <p> 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}.
*
* <p> 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 Dave Syer
* @author Oliver Gierke * @author Oliver Gierke
* @author Josh Long
* @see EnableMongoRepositories * @see EnableMongoRepositories
*/ */
@Configuration @Configuration
......
...@@ -31,11 +31,16 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie ...@@ -31,11 +31,16 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie
import com.mongodb.Mongo; import com.mongodb.Mongo;
/** /**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's {@link MongoTemplate}.
* {@link MongoTemplate}. *
* * <p> Registers a {@link org.springframework.data.mongodb.core.MongoTemplate} bean if no other bean of the same type is configured.
*
* <P> Honors the {@literal spring.data.mongodb.database} property if set, otherwise connects to
* the {@literal test} database.
*
* @author Dave Syer * @author Dave Syer
* @author Oliver Gierke * @author Oliver Gierke
* @author Josh Long
* @see EnableMongoRepositories * @see EnableMongoRepositories
*/ */
@Configuration @Configuration
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment