首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取基于值的配置属性?

如何读取基于值的配置属性?
EN

Stack Overflow用户
提问于 2018-04-03 08:46:59
回答 2查看 981关注 0票数 0

我有spring引导应用程序,用户在其中发送参数,并且基于这个参数,应该得到配置。

我创建了文件名配置类型“Configration_Types.properies”,现在如何读取基于参数传递的配置--我不想创建数据库来查找它?

代码语言:javascript
复制
Type1=Type1
Type1.width=60
Type1.heght=715

Type2=Type2
Type2.width=100
Type2.heght=720

Type3=Type3
Type3.width=100
Type3.heght=700

Type4=Type4
Type4.width=450
Type4.heght=680

Type5=Type5
Type5.width=270
Type5.heght=750

例如,pass type4应该获得配置

Type4

450

680

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-03 09:27:44

功能可以是这样的:

代码语言:javascript
复制
public void readPropertyByType(String type)
    {
        InputStream input = null;
        try
        {
            Properties prop = new Properties();

            // if your type is Type4, the typeKey will be Type4. for compare data
            String typeKey = type + ".";

            String filename = "config.properties";
            input = new FileInputStream(filename);
            prop.load(input);

            String typeInformation = "";
            Enumeration< ? > e = prop.propertyNames();
            while (e.hasMoreElements())
            {
                String key = (String)e.nextElement();
                if (key.indexOf(typeKey) > 0)
                {
                    typeInformation = typeInformation + prop.getProperty(key);
                }
            }
            System.out.println("The data of type " + type + "is :" + typeInformation);
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            if (input != null)
            {
                try
                {
                    input.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }
  • 但是你为你的财产文件做了一个更好的设计。
  • 如果属性文件的顺序从未改变,则可以在获得所有预期数据时停止函数,而不需要循环整个文件。

希望能帮上忙。

--更新--

属性文件可以是这样的:

  • 备选案文1

Type4.width=450

Type4.heght=680

Type5.width=450

Type5.heght=680

  • 选项2

Type4=450,680

Type5=450,680

取决于每个选项,当您获得预期的数据时,您可以中断while循环。

票数 0
EN

Stack Overflow用户

发布于 2018-04-03 10:21:51

如果您可以修改属性文件Configration_Types.properies,如:-

代码语言:javascript
复制
type[0].width=60
type[0].heght=715

type[1].width=100
type[1].heght=720

type[2].width=100
type[2].heght=700


type[3].width=450
type[3].heght=680

type[4].width=270
type[4].heght=750

使用属性文件中的属性值的类是:-

代码语言:javascript
复制
@Component
@ConfigurationProperties("type") // prefix type, find type.* values
public class GlobalProperties {

    private List<Type> type = new ArrayList<Type>();

    //getters and setters

  public static class Type
  {
      private int width;
      private int heght;
     // getter setter

}

而且,根据用户参数,您可以从arraylist访问值。

希望这种帮助:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49625808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档