2017-10-12 95 views
0

我有一个简单的类使用@PropertySource像这样弹簧自动创建属性文件

@Component 
@PropertySource(value = "file:${user.home}/.cooperp/app-conf.properties") 
public class ApplicationProperties { 
    @Value("${mysql-location}") 
    private String mysqlLocation; 

    public String getMysqlLocation() { 
     return mysqlLocation; 
    } 

    public void setMysqlLocation(String mysqlLocation) { 
     this.mysqlLocation = mysqlLocation; 
    } 
} 

我知道代表的属性文件,如果文件没有找到一个可以添加ignoreResourceNotFound = true这将使春季忽略这一情况并启动了应用。

我想春天到创建文件它没有找到,不会忽略或抛出异常。

+1

您需要为此编写代码,这不是'@ PropertySource'的任务/函数。 –

+0

哪里,在主要的方法? –

+0

你为什么要这样做? – PaulNUK

回答

1

通常我们会将属性文件保留在项目目录中。但是如果您的项目需要外部属性,那么您可以检查该文件是否存在于SpringBootApplication类中。如果它没有,那么你可以在那里创建属性文件。代码示例:

@SpringBootApplication 
public class SpringDocBotApplication { 

    public static void main(String[] args) { 
     File file = new File("EXPECTED PATH"); 

     try{ 
      if(!file.exists()){ 
       // create propeties file add properties 
      } 
     } catch (IOException e) { 
     //HANDLE EXCEPTION 
     } 
     SpringApplication.run(SpringDocBotApplication.class, args); 
    } 
}