文章目录  1.目录结构 2.代码 1.pom.xml 排除logging 2.RabbitMQConfig.java 3.RabbitMQAutoConfiguration.java         
  
 
 1.目录结构  
 
 2.代码  
 1.pom.xml 排除logging  
<?xml version="1.0" encoding="UTF-8"?> 
< project  xmlns = " http://maven.apache.org/POM/4.0.0" xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation= " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion>  4.0.0</ modelVersion> < parent> < groupId>  com.sunxiansheng</ groupId> < artifactId>  sunrays-common</ artifactId> < version>  1.0.5</ version> </ parent> < version>  1.0.5</ version> < artifactId>  common-rabbitmq-starter</ artifactId> < dependencies> < dependency> < groupId>  com.sunxiansheng</ groupId> < artifactId>  common-tool-starter</ artifactId> < version>  1.0.5</ version> </ dependency> < dependency> < groupId>  org.springframework.boot</ groupId> < artifactId>  spring-boot-starter-amqp</ artifactId> < exclusions> < exclusion> < artifactId>  spring-boot-starter-logging</ artifactId> < groupId>  org.springframework.boot</ groupId> </ exclusion> </ exclusions> </ dependency> </ dependencies> </ project>  
  
 2.RabbitMQConfig.java  
package  com. sunxiansheng. rabbitmq. config ; import  org. springframework. amqp. core.  Message ; 
import  org. springframework. amqp. core.  MessageProperties ; 
import  org. springframework. amqp. rabbit. connection.  ConnectionFactory ; 
import  org. springframework. amqp. rabbit. core.  RabbitTemplate ; 
import  org. springframework. amqp. support. converter.  Jackson2JsonMessageConverter ; 
import  org. springframework. amqp. support. converter.  MessageConverter ; 
import  org. springframework. amqp. support. converter.  SimpleMessageConverter ; 
import  org. springframework. boot. autoconfigure.  AutoConfigureBefore ; 
import  org. springframework. boot. autoconfigure. amqp.  RabbitAutoConfiguration ; 
import  org. springframework. context. annotation.  Bean ; 
import  org. springframework. context. annotation.  Configuration ; 
@Configuration 
@AutoConfigureBefore ( RabbitAutoConfiguration . class )  
public  class  RabbitMQConfig  { @Bean public  MessageConverter  customMessageConverter ( )  { return  new  MessageConverter ( )  { private  final  Jackson2JsonMessageConverter  jacksonConverter =  new  Jackson2JsonMessageConverter ( ) ; private  final  SimpleMessageConverter  simpleMessageConverter =  new  SimpleMessageConverter ( ) ; @Override public  Message  toMessage ( Object  object,  MessageProperties  messageProperties)  throws  RuntimeException  { if  ( object instanceof  String )  { messageProperties. setContentType ( "text/plain" ) ; return  simpleMessageConverter. toMessage ( object,  messageProperties) ; }  else  { messageProperties. setContentType ( "application/json" ) ; return  jacksonConverter. toMessage ( object,  messageProperties) ; } } @Override public  Object  fromMessage ( Message  message)  throws  RuntimeException  { String  contentType =  message. getMessageProperties ( ) . getContentType ( ) ; if  ( "application/json" . equals ( contentType) )  { return  jacksonConverter. fromMessage ( message) ; }  else  if  ( "text/plain" . equals ( contentType) )  { return  simpleMessageConverter. fromMessage ( message) ; }  else  { throw  new  RuntimeException ( "自定义的消息转换器不支持该类型: "  +  contentType) ; } } } ; } @Bean public  RabbitTemplate  rabbitTemplate ( ConnectionFactory  connectionFactory)  { RabbitTemplate  rabbitTemplate =  new  RabbitTemplate ( connectionFactory) ; rabbitTemplate. setMessageConverter ( customMessageConverter ( ) ) ; return  rabbitTemplate; } 
} 
  
 3.RabbitMQAutoConfiguration.java  
package  com. sunxiansheng. rabbitmq. config ; import  org. springframework. context. annotation.  Configuration ; 
import  org. springframework. context. annotation.  Import ; 
@Configuration 
@Import ( RabbitMQConfig . class ) 
public  class  RabbitMQAutoConfiguration  { 
}