在使用Nacos一段时间后,发现发布的服务不知道什么时候上的线。这时候就来新需求了。
最终效果图:

根据下图,我们可以得知metadata的数据结构为Map

也就是可以如此配置:

但是在配置文件里并不能获取当前时间。点击metadata进入会NacosDiscoveryProperties类,其中有一个init()函数,服务列表默认存在的元数据是在这里给的。

点击绿色的按钮

然后会看到这一段代码:
@Bean
@ConditionalOnMissingBean
public NacosDiscoveryProperties nacosProperties() {
return new NacosDiscoveryProperties();
}
@Bean注解就不解释了。@ConditionalOnMissingBean表示如果存在它修饰的bean,则不需要再创建这个bean。那我们只需要创建这个NacosDiscoveryProperties 对象并初始化 metadata:
@Bean
public NacosDiscoveryProperties nacosProperties() {
NacosDiscoveryProperties nacosDiscoveryProperties = new NacosDiscoveryProperties();
Map<String, String> metadata = nacosDiscoveryProperties.getMetadata();
metadata.put("startup.time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(new Date()));
return nacosDiscoveryProperties;
}
网友评论