V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daiwenzh5
V2EX  ›  Java

求教, springboot 元数据自动提示,如何配置 map、list 类型(也能正确提示)

  •  
  •   daiwenzh5 · 2021-08-26 20:46:28 +08:00 · 2156 次点击
    这是一个创建于 1194 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如: application.yml

    person:
        name: 张三
        age: 20
        friends:
        	1:
                name: 李四
                age: 18
            2: 
                name: 王五
                age: 22
    

    Person.java

    class Person {
    	String name;
        int age;
        Map<Integer, Person> friends;
        
    }
    

    配置文件中 person.friends.1.name 是没有提示信息的,如何设置使得 map 属性也能正确的出现提示信息,且 key 可以是任意值(已知枚举可以提示)的。

    5 条回复    2021-08-27 15:57:53 +08:00
    chendy
        1
    chendy  
       2021-08-26 20:50:02 +08:00
    提示不了
    spring-boot 自己的一些 Map 类型的配置也提示不了
    zhenjiachen
        2
    zhenjiachen  
       2021-08-26 21:33:52 +08:00 via iPhone
    用 properties 可以提示
    daiwenzh5
        3
    daiwenzh5  
    OP
       2021-08-26 22:47:34 +08:00
    @zhenjiachen 说的就是 properties 😫,不过对于属性是 map 、list 的并不能友好的显示提示信息
    skai0dev
        4
    skai0dev  
       2021-08-26 23:13:41 +08:00
    properties 可以提示,不过只能提示一层,person.friends.1.friends.1.name 这种提示不了

    可以添加一个 json 文件设置配置的元数据: https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html

    StackOverflow 上好像也有这种,不过是 string 类型的键:
    https://stackoverflow.com/q/55157155
    https://stackoverflow.com/q/59426567
    https://stackoverflow.com/q/65184803
    Kyle18Tang
        5
    Kyle18Tang  
       2021-08-27 15:57:53 +08:00
    spring-boot-configuration-processor 引用了吗, Properties 文件需要重新编译才能生效
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:26 · PVG 11:26 · LAX 19:26 · JFK 22:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.