как прочитать значение файла свойств весной во время выполнения из входной строки

Я использую XML-конфигурацию Java+Spring+spring в своем проекте.

Я хотел бы прочитать одно значение свойства из файла свойств и установить значение java в конфигурации spring, используя входное значение String.

МойКласс.class

private String tableDetails;
private String logpath;

myTest.properties

log_path=C:\test\app
table1_details=table1Name|table1Key|query1
table2_details=table2Name|table2Key|query2
table3_details=table3Name|table3Key|query3

Spring_config.xml

<bean id="myClass" class="com.test.MyClass">
        <property name="logpath" ref="${log_path}"/>
<property name="tableName" value="#{systemProperties['checker.table']}"/>        
        <property name="tabledetails" value="${#{systemProperties['checker.table']}}"/>

предположим, что checker.table = table1_details, тогда

<!--working-->
<property name="tableDetails" value="${table1_details}"/> 
<!--not working-->
<property name="tableDetails" value="${#{systemProperties['checker.table']}}"/> 

Таким образом, требование состоит в том, чтобы у меня было имя свойства в systemProperties['checker.table'], которое я не могу использовать в поле значения, чтобы прочитать сведения о свойстве table1_details и установить tableDetails в MyClass?


person Tokendra Kumar Sahu    schedule 19.06.2017    source источник


Ответы (2)


В вашем классе java/pojo, чтобы получить значение из файла свойств, напишите -

@value("${table1_details}")
String tableDetails;

@value("${log_path}")
String logpath;

Вы также должны указать свой файл свойств в xml -

<context:place-holder location="classpath*:myTest.properties">

И чтобы прочитать значение POJO в xml-файле, вызовите метод get, например:

<bean id="abc" class = "qwe.ert.MyClass"/> 
<bean id="xyz" class= "qwe.ert.NewClass">
    <property name="tableDetails" value="#{abc.getTableDetails()}">
    <property name="log" value="#{abc.getLogPath()}">
</bean>
person Khoyendra Pande    schedule 21.06.2017

Аннотируйте свой класс с помощью

@PropertySource("sourceOfProperty")

ввести значение в поле

@Value(${property})

Вы также можете получить доступ к свойству из среды

env.getProperty("property")
person fg78nc    schedule 19.06.2017