SpringBootʵս(ʮһ)Ö®ÓëJMS¼òµ¥Í¨ÐÅ
ʲôÊÇJMS£¿ ÒýÓðٶȰٿÆÉϵÄ˵Ã÷: JMS¼´JavaÏûÏ¢·þÎñ£¨Java Message Service£©Ó¦ÓóÌÐò½Ó¿Ú£¬ÊÇÒ»¸öJavaƽ̨ÖйØÓÚÃæÏòÏûÏ¢Öмä¼þ£¨MOM£©µÄAPI£¬ÓÃÓÚÔÚÁ½¸öÓ¦ÓóÌÐòÖ®¼ä£¬»ò·Ö²¼Ê½ÏµÍ³Öз¢ËÍÏûÏ¢£¬½øÐÐÒ첽ͨÐÅ¡£JavaÏûÏ¢·þÎñÊÇÒ»¸öÓë¾ßÌåÆ½Ì¨Î޹صÄAPI£¬¾ø´ó¶àÊýMOMÌṩÉ̶¼¶ÔJMSÌṩ֧³Ö¡£
JMSÊÇÒ»ÖÖÓë³§ÉÌÎÞ¹ØµÄ API£¬ÓÃÀ´·ÃÎÊÏûÏ¢ÊÕ·¢ÏµÍ³ÏûÏ¢£¬ËüÀàËÆÓÚJDBC(Java Database Connectivity)¡£ÕâÀJDBC ÊÇ¿ÉÒÔÓÃÀ´·ÃÎÊÐí¶à²»Í¬¹ØÏµÊý¾Ý¿âµÄ API£¬¶ø JMS ÔòÌṩͬÑùÓë³§ÉÌÎ޹صķÃÎÊ·½·¨£¬ÒÔ·ÃÎÊÏûÏ¢ÊÕ·¢·þÎñ¡£Ðí¶à³§É̶¼Ö§³Ö JMS£¬°üÀ¨ IBM µÄ MQSeries¡¢BEAµÄ Weblogic JMS serviceºÍ Progress µÄ SonicMQ¡£ JMS ʹÄúÄܹ»Í¨¹ýÏûÏ¢ÊÕ·¢·þÎñ£¨ÓÐʱ³ÆÎªÏûÏ¢Öнé³ÌÐò»ò·ÓÉÆ÷£©´ÓÒ»¸ö JMS ¿Í»§»úÏòÁíÒ»¸ö JMS¿Í»§»ú·¢ËÍÏûÏ¢¡£ÏûÏ¢ÊÇ JMS ÖеÄÒ»ÖÖÀàÐͶÔÏó£¬ÓÉÁ½²¿·Ö×é³É£º±¨Í·ºÍÏûÏ¢Ö÷Ìå¡£±¨Í·ÓÉ·ÓÉÐÅÏ¢ÒÔ¼°ÓйظÃÏûÏ¢µÄÔªÊý¾Ý×é³É¡£ÏûÏ¢Ö÷ÌåÔòЯ´ø×ÅÓ¦ÓóÌÐòµÄÊý¾Ý»òÓÐЧ¸ºÔØ¡£¸ù¾ÝÓÐЧ¸ºÔصÄÀàÐÍÀ´»®·Ö£¬¿ÉÒÔ½«ÏûÏ¢·ÖΪ¼¸ÖÖÀàÐÍ£¬ËüÃÇ·Ö±ðЯ´ø£º¼òµ¥Îı¾(TextMessage)¡¢¿ÉÐòÁл¯µÄ¶ÔÏó (ObjectMessage)¡¢ÊôÐÔ¼¯ºÏ (MapMessage)¡¢×Ö½ÚÁ÷ (BytesMessage)¡¢ÔʼֵÁ÷ (StreamMessage)£¬»¹ÓÐÎÞÓÐЧ¸ºÔصÄÏûÏ¢ (Message)¡£
?
ÏÂÃæ½øÈëSpringBoot¼òµ¥Ê¹ÓÃJMSʾÀý:
?
Ò»¡¢µ¼ÈëÒÀÀµ
<?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</> groupId>org.springframeworkartifactId>gs-messaging-jmsversion>0.1.0parent> >org.springframework.boot>spring-boot-starter-parent>1.5.8.RELEASEpropertiesjava.version>1.8java.versiondependenciesdependency> >spring-boot-starter-activemq>org.apache.activemq>activemq-broker> >com.fasterxml.jackson.core>jackson-databindbuildpluginsplugin> >spring-boot-maven-plugin> project> ? ¶þ¡¢±àдÏûÏ¢½ÓÊÕÆ÷ package hello; public class Email { private String to; private String body public Email() { } public Email(String to, String body) { this.to = to; this.body = body } public String getTo() { return to } public void setTo(String to) { this.to = to } public String getBody() { return body } public void setBody(String body) { this.body = body } @Override public String toString() { return String.format("Email{to=%s,body=%s}",getTo(),getBody()) } } ? Èý¡¢¶¨ÒåÏûÏ¢½ÓÊÕÕß package hello; import org.springframework.jms.annotation.JmsListener; org.springframework.stereotype.Component; @Component public class Receiver { @JmsListener(destination = "mailbox",containerFactory = "myFactory") void receiveMessage(Email email) { System.out.println("Received <" + email + ">"); } }
? ËÄ¡¢Ê¹ÓÃSpring·¢ËͺͽÓÊÕJMSÏûÏ¢ javax.jms.ConnectionFactory; org.springframework.boot.SpringApplication; org.springframework.boot.autoconfigure.SpringBootApplication; org.springframework.boot.autoconfigure.jms.DefaultJmsListenerContainerFactoryConfigurer; org.springframework.context.ConfigurableApplicationContext; org.springframework.context.annotation.Bean; org.springframework.jms.annotation.EnableJms; org.springframework.jms.config.DefaultJmsListenerContainerFactory; org.springframework.jms.config.JmsListenerContainerFactory; org.springframework.jms.core.JmsTemplate; org.springframework.jms.support.converter.MappingJackson2MessageConverter; org.springframework.jms.support.converter.MessageConverter; org.springframework.jms.support.converter.MessageType; @SpringBootApplication @EnableJms Application { @Bean public JmsListenerContainerFactory<?> myFactory(ConnectionFactory connectionFactory,DefaultJmsListenerContainerFactoryConfigurer configurer) { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); // This provides all boot's default to this factory,including the message converter configurer.configure(factory,connectionFactory); You could still override some of Boot's default if necessary. return factory; } @Bean Serialize message content to json using TextMessage public MessageConverter jacksonJmsMessageConverter() { MappingJackson2MessageConverter converter = MappingJackson2MessageConverter(); converter.setTargetType(MessageType.TEXT); converter.setTypeIdPropertyName("_type"); converter; } static main(String[] args) { Launch the application ConfigurableApplicationContext context = SpringApplication.run(Application.,args); JmsTemplate jmsTemplate = context.getBean(JmsTemplate.); Send a message with a POJO - the template reuse the message converter System.out.println("Sending an email message."); jmsTemplate.convertAndSend("mailbox",1)">new Email("info@example.com","Hello")); } } ? ? @Bean×¢½â£¬Ö÷Òª×÷ÓÃÊÇ¿ØÖÆ·´×ª(IOC£©£¬Í¬ ??? <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" > ¾ÙÀý˵Ã÷: ÀýÈçÒÔMessageΪÀý: ? @Bean String message() { return new String("hello"); } ? ËüµÈ¼ÛÓÚ <bean id="message" class="java.lang.String">
<constructor-arg index="0" value="hello"/>
</bean>
? ͨ³£Çé¿öÏ£¬ÓÐÈýÖÖÅäÖÃBeanµÄ·½Ê½: ÈçͼËùʾ ? ? ?¹ØÓÚBean×¢½âÈýÖÖÅäÖ÷¨£¬ÉîÈë½éÉÜ¿ÉÒԲο¼¸Ã²©ÎÄ:https://blog.csdn.net/icarus_wang/article/details/51649635 ? ?
? ΪÇå³þÆð¼û£¬ÎÒÃÇ»¹¶¨ÒåÁËÒ»¸öÔÚ½ÓÊÕÆ÷×¢ÊÍÖÐ ? ĬÈÏ ?
Äãû¿´µ½µÄÁ½¸öbeanÊÇ ×¢Òâ: Spring? ? ×îºóÔËÐнá¹ûÈçÏÂͼËùʾ: ? £¨±à¼£ºÀî´óͬ£© ¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ! |
- java ¨C ÔÚadj¾ØÕóͼÖвéÕÒ×î´óµÄÁ¬Í¨·ÖÁ¿£¿
- Java Swing°´Å¥ÑÕÉ«
- ½âÎöiOS10Öе﫹âÍÆËÍÏûÏ¢µÄÊÊÅä
- SpringMVC À¹½ØÆ÷²»À¹½Ø¾²Ì¬×ÊÔ´µÄÈýÖÖ´¦Àí·½Ê½·½·¨
- ´ÓÁ㿪ʼʹÓÃIDEA´´½¨SpringBootÏîÄ¿(ͼÎÄ)
- JavaÖеÄsuper¹Ø¼ü×Ö_¶¯Á¦½ÚµãJavaѧԺÕûÀí
- String.Format´óÈ«(C# Java)
- java ¨C ÔÚJTreeÖÐÒþ²Ø/¹ýÂ˽ڵ㣿
- ΪʲôJava 7ºÍEclipse 3.8±àÒëÆ÷²»ÄÜÓÃеÄJava 7×êʯ²Ù×÷
- java ¨C tomcatÖеĿջỰ·¾¶ÊÇʲô£¿
- java ¨C ´Ó×Ö·û´®×ª»»Îª×Ö½ÚʱµÄNumberFormatExc
- ÔÚJavaµÚ4°æÖÐ˼¿¼ ¨C ʲôÊÇclassname.this.met
- Ïê½âhibernate4»ù±¾ÊµÏÖÔÀí
- java ³éÏóÀàÓë½Ó¿Ú
- junit ¨C Cobertura¸ø³öµÄ²ÎÊýÁбíÌ«³¤ÁË
- ʹÓÃJDBCʵÏÖÊý¾Ý·ÃÎʶÔÏó²ã£¨DAO£©´úÂëʾÀý
- RxJavaÔÚScheduler.io()Ïß³ÌÖв»Æð×÷ÓÃ
- Spring MVC½áºÏSpring Data JPAʵÏÖ°´Ìõ¼þ²éѯºÍ
- java ¨C ¶à±ßÐν»µãʧ°Ü,Åöײ¡°´óС¡±Ì«´ó
- java ¨C ÔÚ×ÖµäÖвéÕÒËùÓÐÓÐЧµ¥´ÊµÄËã·¨ÎÊÌâ