如何为spring boot创建内部属性文件?

时间:2016-11-02 17:55:13

标签: java spring spring-boot properties-file

我目前有一个外部属性文件,它被输入流调用。但是当我将我的jar文件上传到云代工厂时,我的应用程序将无法运行。

代码段

    public static void main(String[] args) {
    SpringApplication.run(App.class, args);


    Properties prop = new Properties();

    InputStream input = null;
    try {
        Date sysDate = new Date();
        String dateString = sysDate.toString();
        logger.info(" Application Started Time : " + dateString);

        input = new
        FileInputStream("C:/Users/Jackie/workspace/springApplication/myConfig.properties");
        prop.load(input);

在我的属性文件中,我有很多文本,它在我的java应用程序中使用。在进行研究时,似乎我需要将属性文件更改为spring引导格式?这是对的吗?

属性摘要

mailhost=mailman@mail.com
mailToException=TheReal_mailman@mail.com
mailwhengreen = TheReal_mailman@mail.com
mailTo = TheReal_mailman@mail.com
mailFrom = messenger21@yahoo.com
mailFromwhengreen = messenger21@yahoo.com
subject= You got mail!

以下是云代工厂的日志。

errors from cf

1 个答案:

答案 0 :(得分:0)

如果您的属性文件是静态的,在应用程序启动时加载一次并且在应用程序生命周期内不会更改,则下面的答案可以正常运行。 如果您需要在应用程序运行时解析属性文件,那么Spring配置文件不是正确的位置,您确实需要自己处理属性(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/resources.html#resources-implementations-filesystemresource应该帮助您)

无需自行读取和解析属性文件。

最容易想到你能做到的,就是使用个人资料。 您启用名为someProfile的配置文件,然后spring将查找名为application-someProfile.properties的属性文件。

如果发现将使用外部(在您打包的jar之外)文件。否则将使用内部(在jar中打包)文件。这澄清了 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config

  

按以下顺序考虑属性:

     

(...)

     
      
  1. 打包jar之外的特定于配置文件的应用程序属性   (application- {profile} .properties和YAML variants)特定于配置文件
  2.   
  3. 打包在jar中的应用程序属性   (application- {profile} .properties和YAML variants)
  4.   

如果没有匹配的属性文件,那么完全没问题。

通过在任何@Profile("production")类上添加@Configuration来激活配置文件。

也可以使用spring.profiles.active环境变量列出活动配置文件(您可以在启动应用程序时设置此变量)。

要读取属性值,您可以执行

之一
  • @Autowire org.springframework.core.env.Environment个实例进入您的课程并致电getProperty
  • 注入使用@Value(“$ {propertyName}”)
  • 注释的String变量

检查http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html 有关Spring Boot属性的更多详细信息。

检查http://docs.spring.io/autorepo/docs/spring-boot/current/reference/html/boot-features-profiles.html以获取有关配置文件的更多信息。

如果属性文件中出现错误,则应在应用程序启动时(上下文加载期间)出错。要检查加载的属性,您可以使用http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

env端点最有用,因为它会列出

  • 所有已启用的个人资料
  • 所有已加载的属性文件
  • 所有已加载的属性