但是也有一些很特殊的场景,要拿到appolo或者nacos里配置的文件,比如有个第三方jar包提供的方法中,要求把properties配置文件路径传进去来初始化第三方jar包里需要用到的东西,这时候一般是把properties文件配置到appolo或者nacos里,但是如何直接拿到这个properties文件而不是里面的属性值呢?
apollo里直接提供了把配置的相应namespace直接转换成file的方法:
再把这个content转换成输入流就可以用了
如果只是想拿到里面某个namespace的属性,则可以:
key为属性key名,c.getPropertyNames()方法能拿到该namespace下面的所有属性,返回一个Set<String>集合,再遍历这个集合就能拿到所有属性。
nacos跟apollo的处理思路有点不一样,找了很多资料,貌似没有找到nacos里直接获取整个获取配置文件的方法,后面如果有同学找到了这个方法记得留言提醒我。
nacos在springboot启动的时候已经把所有配置文件都注入到了spring里。
第一种:可以直接用注解 @Value("${key}")来获取配置好的属性值
第二种:在java里获取:
新建SpringContextUtil实现org.springframework.context.ApplicationContextAware这个接口:
在启动类用注解导入该类:@Import({SpringContextUtil.class})
利用org.springframework.core.env.Environment类来直接获取属性:
如果有这样一个需求,有个第三方的jar包要求初始化配置好的properties文件,只给了properties文件的路径传参,只能用文件路径的方式初始化这个第三方jar包,那么我们就必须保证项目里或者其他文件夹有这个properties文件才可以,而这些配置如果经常要变的话,最好也是配置在nacos或者apollo,如此看来,apollo是可以直接把配置的相应namespace直接转换成file,而nacos大概只能把所有属性手工生成一个新的properties文件来保存到本地了。
这个生成文件的过程,要在springboot启动之后立即执行:
那我们就要建一个配置类实现org.springframework.beans.factory.InitializingBean这个接口,重写afterPropertiesSet()方法:把需要启动后执行的逻辑放在里面,下面是一个示例:
把这个类在启动类里注入:
如此,在启动的时候就可以在本地生成一个cssconfig.properties文件了。
于是乎就可以类似这样调用第三方接口(根据第三方jar包来定):
可以删除,再次开启后会自动生成相关文件。当MQTT出现 DB operation failed. (entering recovery mode) 报错时候,清理此文件夹内的文件再重启MQTT服务器即可解决。M232系列控制面板显示 “Er 77” 错误故障现象:
开机加电后打印机不就绪,控制面板显示“rd”,如右边的视频和截图所示,用USB连接打印机到电脑,电脑发现的硬件设备为LaserJet 3020
故障原因:
打印机的固件问题,需要使用Usbsend发送打印机的特殊固件
*** 作步骤:
固件“apollo.rfu”和刷新工具“usbsend.exe”
将两个文件放到同一个文件夹内,例如:C:\M232;
将打印机和电脑使用USB电缆连接(注意:电脑只连接打印机一个USB设备)
发送特殊固件给打印机(推荐使用CMD方式,可以看到固件发送过程和结果,鼠标拖放的方式直观,但是看不到过程,如果报错,也看不到)
方法1:进入命令行模式(在运行里面输入CMD),然后进入到固件所在的文件夹,输入:usbsend apollo.rfu后回车
方法2:在文件资源管理器中,进入到固件所在的文件夹,用鼠标将固件文件拖到usbsend.exe文件上后释放;
打印机接收到固件文件后,控制面板会显示逐渐增加的数值:5,10,15,……,90,00
如果固件接收完成后,打印机没有自动重新启动,请手动关机后重新启动;
重新启动后,打印机将恢复正常。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)