简单写了一个基于spring boot mosquitto 的starter

摘要: 基于spring boot和mosquitto实现了一个mosquitto的starter, 在以后的项目中需要用到mosquitto的地方,可以简单修改,然后集成到项目中去

基于spring boot和mosquitto实现了一个mosquitto的starter, 在以后的项目中需要用到mosquitto的地方,可以简单修改,然后集成到项目中去.



不记录详细过程了,原代码下载可以看,只记录几个重点,一个自定义的springboot starter,一般来说要满足以下两个条件:

  1.  一个自动装配的类及相关依赖, 注意装配类上的注解

  2. 装配类需要的配置文件,一般来说说是 properties 文件

  3. 装配类对应的maven pom.xml文件

  4. META-INF 目录下 spring.factories 文件的定义, 特别要注意里面的内容,一定要与自己编写的starter 一 一对应,注意粗体字内容,全是自定义的类

    org.springframework.boot.autoconfigure.EnableMosquittoConfigure=\

    com.yihaomen.mosquitto_starter.MosquittoAutoConfigure

mosquitto 的消息处理逻辑相对来说就比较简单了,按照相关API 处理就行,重点是写了一个MessageHandler 接口,处理消息。

调用方怎么处理呢,可以这么做,首先maven引入starter

<dependency>
	<groupId>com.yihaomen</groupId>
	<artifactId>mosquitto-starter</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</dependency>

然后再自己的工程APP上添加 @EnableMosquittoConfigure,类似如下:

@EnableScheduling
@EnableMosquittoConfigure
@SpringBootApplication
public class App {
	
	public static void main(String[] args) {
		SpringApplication app = new SpringApplication(App.class);
	    app.run(args);
	}

}

在应用启动的时候,加载mosquitto相应方法,比如在例子中启动的订阅:

@Component
public class MosquittoServiceLoader {
	
	private static Logger logger = LoggerFactory.getLogger(MosquittoServiceLoader.class);	
	
	@Autowired
	private MosquittoMsgReceiver mosquittoMsgReceiver;
	
	@PostConstruct
	public void startMosquittoReceiveListener() {
		logger.info("==>load mosquittoRecieve listener");
		mosquittoMsgReceiver.run(new MessageHandler() {			
			@Override
			public void handleMessage(String msg, String topic) {
				logger.info("==>get topic: " + topic);	
				logger.info("==>get msg: " + msg);				
			}
		});
	}
	

}

源代码下载:

spring boot,mosquitto 集成starter 源码下载

上一篇: 一篇文章入门 centos/redhat下 jenkins 实现自动化部署
下一篇: Hadoop FileSystem 获取目录所占磁盘空间大小
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号