Skip to content

Commit

Permalink
polishing documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
joshlong authored and Dave Syer committed Mar 7, 2014
1 parent da7d543 commit 9453a63
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -30,55 +31,70 @@
import org.springframework.context.annotation.Bean;
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 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;
}

}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,15 @@
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 Josh Long
* @see EnableAspectJAutoProxy
*/
@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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());
}
Expand All @@ -68,7 +67,7 @@ private AnnotationRepositoryConfigurationSource getConfigurationSource() {
public java.lang.Iterable<String> getBasePackages() {
return AbstractRepositoryConfigurationSourceSupport.this
.getBasePackages();
};
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,18 @@

/**
* {@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 Josh Long
* @see EnableJpaRepositories
*/
@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,17 @@
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Mongo
* 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 Oliver Gierke
* @author Josh Long
* @see EnableMongoRepositories
*/
@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,16 @@
import com.mongodb.Mongo;

/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's
* {@link MongoTemplate}.
*
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's {@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 Oliver Gierke
* @author Josh Long
* @see EnableMongoRepositories
*/
@Configuration
Expand Down

0 comments on commit 9453a63

Please sign in to comment.