Изменение имени файла свойств приводит к тому, что он не будет найден - PullRequest
2 голосов
/ 17 июня 2019

У меня есть файл свойств с именем application.properties :

mysql.connectionUrl=jdbc:somesql://index.mycust.cr:0000/dbName
mysql.username=me
mysql.password=mypass

Этот класс используется моим классом DbNameConnectionProperties.java следующим образом:

package com.mycom.mycust.somesql.dbconnection;

@Configuration
@PropertySource("classpath:application.properties")
@ConfigurationProperties("mysql")
public class DbNameConnectionProperties {

    private String connectionUrl;
    private String username;
    private String password;

    public String getConnectionUrl() {
        return connectionUrl;
    }

    public void setConnectionUrl(String connectionUrl) {
        this.connectionUrl = connectionUrl;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

Это работает нормально.Теперь я хочу изменить имя файла application.properties (мне понадобится другой файл со свойствами для другой базы данных).Поэтому я просто изменяю имя файла application.properties на что-то .properties , а также имя в аннотации @PropertySource:

что-то.properties :

mysql.connectionUrl=jdbc:somesql://index.mycust.cr:0000/dbName
mysql.username=me
mysql.password=mypass

DbNameConnectionProperties.java :

package com.mycom.mycust.somesql.dbconnection;

@Configuration
@PropertySource("classpath:something.properties")
@ConfigurationProperties("mysql")
public class DbNameConnectionProperties {

    // same as before
}

Это происходит сбой:

2019-06-17 16:34:20,593 [ ERROR ] o.s.b.SpringApplication:842 : Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.findwise.svenskaakademin.processing.Processing]; nested exception is java.io.FileNotFoundException: class path resource [something.properties] cannot be opened because it does not exist
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:184)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:316)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:233)
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273)
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243)
    at com.findwise.svenskaakademin.processing.Processing.main(Processing.java:37)
Caused by: java.io.FileNotFoundException: class path resource [something.properties] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
    at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:159)
    at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:99)
    at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:73)
    at org.springframework.core.io.support.PropertiesLoaderUtils.loadProperties(PropertiesLoaderUtils.java:59)
    at org.springframework.core.io.support.ResourcePropertySource.<init>(ResourcePropertySource.java:67)
    at org.springframework.core.io.support.DefaultPropertySourceFactory.createPropertySource(DefaultPropertySourceFactory.java:37)
    at org.springframework.context.annotation.ConfigurationClassParser.processPropertySource(ConfigurationClassParser.java:453)
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:272)
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245)
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:194)
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296)
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245)
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:202)
    at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:170)

Почему?

1 Ответ

1 голос
/ 17 июня 2019

Похоже, something.properties не на пути к классам. Дважды проверьте, что он создан в каталоге ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...