Как читать свойства конфигурации на основе значения передать?

У меня есть приложение весенней загрузки, где пользователь отправляет параметр и, основываясь на этом параметре, настройки должны быть получены.

Я создал тип конфигурации имени файла "Configration_Types.properies", теперь как я могу прочитать конфигурацию, основываясь на передаче параметров. Я не хочу создавать базу данных для ее поиска?

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

2 ответа

Решение

Функция может быть такой:

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

Тип 4=450, 680

Тип 5=450, 680

В зависимости от каждой опции, вы можете прервать цикл while, когда получите ожидаемые данные.

Если вы можете изменить свой файл свойств Configration_Types.properies, как:-

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

И ваш класс для использования значений свойств из файла свойств будет:

@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.

надеюсь, что это поможет:

Другие вопросы по тегам