如何在应用程序启动时使用Micronaut PropertySource将数据从json文件Map到属性

wljmcqd8  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(146)

我是Micronaut的新手,想知道如何在应用程序启动时从JSON文件中读取属性。我有一些Sping Boot One的参考代码,但对micronaut没有帮助。
下面是我的secrets.json文件:

{    
"dbusername":"testuser",    
"dbpassword": "testpass" 
}

下面是我的application.yaml文件:

mongodb:       
  uri: mongodb://${dbusername}:${dbpassword}@localhost:27117

secrets:
  filePath: file:////Users/aaaa/Downloads/secrets.json

以下是我的主要应用:

object TestApplication {
    @JvmStatic
    fun main(args: Array<String>) {
        Micronaut.build()
            .packages("com.test")
            .mainClass(TestApplication.javaClass)
            .start()
    }
}

我想从json文件中读取secrets并将其Map到yaml文件中的property。我听说过一些关于propertySource的事情,但不知道如何使用它。
任何快速的帮助将不胜感激。

wixjitnu

wixjitnu1#

在应用程序中的某个地方,您需要注入来自application.yml的路径,并使用Jacksons ObjectMapper来解析JSON文件并创建Java示例。

@Singleton
public class SomeClass {
   
   @Value("${secrets.filePath}")
   private File verySecretFile;
   @Inject
   ObjectMapper objectMapper;

   void someMethod() {
     YourClass yourClass = objectMapper.readValue(this.verySecretFile, YourClass.class);
   }
}

相关问题