Java Spring:不将变量转换为文件属性

时间:2016-12-16 17:15:29

标签: java spring spring-mvc

在我的存储库中,存在具有此var的文件属性:

wizard.start.scriptNameAndroid=install-android.bat

这是我的文件 spring-businss.xml 的一部分:

<bean id="wizardService" class="business.services.WizardServiceImpl">
    <property name="nameFileAndroid" value="${wizard.start.scriptNameAndroid}"/>        
</bean>

这是我的Java类

public class WizardServiceImpl implements WizardService {
    private static String nameFileAndroid="";  

[...]

    public String getNameFileAndroid() {
        return nameFileAndroid;
    }
    public void setNameFileAndroid(String nameFileAndroid) {
        this.nameFileAndroid = nameFileAndroid;
    } 
}

当我使用变量 nameFileAndroid 时,程序始终使用我在类中设置的值。 如何优先处理文件文件属性?

2 个答案:

答案 0 :(得分:0)

为什么不使用以下方式注入它:

@Value("${wizard.start.scriptNameAndroid}")
private static String nameFileAndroid;

它将从您的属性文件中获取值。

答案 1 :(得分:0)

如果该变量在.properties文件中,您可以像这样引用它的值:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;

@ComponentScan(basePackages = { "business.services.*" })  
@PropertySource("classpath:file.properties")
public class WizardServiceImpl implements WizardService {

    @Autowired
    private Environment enviro;

    private static String nameFileAndroid = enviro.getProperty("wizard.start.scriptNameAndroid");
}

Another way

@ComponentScan(basePackages = { "business.services.*" })  
@PropertySource("classpath:file.properties")
public class WizardServiceImpl implements WizardService {

    @Value("${wizard.start.scriptNameAndroid}")
    private static String nameFileAndroid;

    //Register bean to enable ${} value wiring
    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
    return new PropertySourcesPlaceholderConfigurer();
   }
}

或者如果您仍然喜欢XML方式:

<context:property-placeholder location="resources/file.properties" />

希望我帮助过。 :)