Как решить проблему с пользовательскими * .properties в Spring Boot? - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю загрузочное приложение Spring, и я готов начать работу над моим сервером. Тем не менее, последний шаг, который у меня есть, - это создание собственного файла .properties в моем каталоге. Хотя, когда я создаю его, я использую также переменные с пользовательскими именами, которые имеют связанный класс, чтобы помочь получить и установить информацию. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я go извлекаю эту информацию в моем java классе, я продолжаю получать обратно Null Pointer Exception. Я считаю, что мне не хватает аннотации или, может быть, шаг, но я точно не знаю, где. Я попробовал некоторые другие шаги, чтобы решить эту проблему, убедившись, что мои Autowired были там и мои имена были правильными, но чьи тоже ничего не решали.

Java Класс:


@Component
@ConfigurationProperties
@PropertySource("file:./conf/dataload.properties")
public class DataLoadProperties {
    String llave="Jz3QD5rrpmAElqa";

    Deslt deslt;
    private static BasicTextEncryptor basicenc = new BasicTextEncryptor();

    DATASOURCE datasource;


    public DATASOURCE getDatasource() {
        return datasource;
    }

    public void setDatasource(DATASOURCE datasource) {
        this.datasource = datasource;
    }


    public Deslt getDeslt() {
        return deslt;
    }

    public void setDeslt(Deslt deslt) {
        this.deslt = deslt;
    }

    public static class DATASOURCE{
        String url;
        String username;
        String userpw;
        String databasename;
        String databaseschema;
        String driverClassName;

        public String getUrl() {
            return url;
        }
        public void setUrl(String url) {
            this.url = url;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getUserpw() {
            return userpw;
        }
        public void setUserpw(String userpw) {
            this.userpw = userpw;
        }
        public String getDatabasename() {
            return databasename;
        }
        public void setDatabasename(String databasename) {
            this.databasename = databasename;
        }
        public String getDatabaseschema() {
            return databaseschema;
        }
        public void setDatabaseschema(String databaseschema) {
            this.databaseschema = databaseschema;
        }
        public String getDriverClassName() {
            return driverClassName;
        }
        public void setDriverClassName(String driverClassName) {
            this.driverClassName = driverClassName;
        }

    }


    public static class Deslt{
        String host;
        int port;
        String certfile;
        String userid;
        String userpw;

        public int getPort() {
            return port;
        }
        public void setPort(int port) {
            this.port = port;
        }
        public String getHost() {
            return host;
        }
        public void setHost(String host) {
            this.host = host;
        }
        public String getCertfile() {
            return certfile;
        }
        public void setCertfile(String certfile) {
            this.certfile = certfile;
        }
        public String getUserid() {
            return userid;
        }
        public void setUserid(String userid) {
            this.userid = userid;
        }
        public String getUserpw() {
            return userpw;
        }
        public void setUserpw(String userpw) {
            this.userpw = userpw;
        }

    }
}

Свойства:


deslt.host=hostname
deslt.port=9433
deslt.certfile=\\data
deslt.userid=id
deslt.userpw=1234


jasypt.encryptor.bean=encryptorBean

spring.datasource.url=jdbc:sqlserver://server
spring.datasource.username=User
spring.datasource.password=1234
spring.datasource.databasename=TEST
spring.datasource.databaseschema=schema
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver



spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.ddl-auto = none

Пример точки отказа:

         String host = dataProperties.getDeslt().getHost();
         String password=dataProperties.getDeslt().getUserpw();

Ошибка:

Null Pointer Exception on:  dataProperties.getDeslt().getHost();

В качестве теста при попытке просто распечатать dataProperties я получил эту ошибку.

2020-04-10 09:48:11,743  [http-nio-8080-exec-8]  DEBUG api.ApiFactory - Creating BeanFactory from file
2020-04-10 09:48:11,745  [http-nio-8080-exec-8]  DEBUG api.ApiFactory - Loading the BeanFactory from etc\api-setup.xml
2020-04-10 09:48:11,746  [http-nio-8080-exec-8]  DEBUG api.ApiFactory - Collation home is not set
2020-04-10 09:48:11,746  [http-nio-8080-exec-8]  DEBUG api.ApiFactory - Unable to load the BeanFactory from file, loading from classloader
2020-04-10 09:48:11,937  [http-nio-8080-exec-8]  DEBUG api.ApiFactory - Found BeanFactory = org.springframework.beans.factory.xml.XmlBeanFactory@4aa60348: defining beans [ApiConnectionFactory,ApiSessionFactory,PostProcess]; root of factory hierarchy
2020-04-10 09:48:11,940  [http-nio-8080-exec-8]  DEBUG client.ApiSessionFactory - ApiSessionFactory: Api server is ignoreThis
2020-04-10 09:48:11,941  [http-nio-8080-exec-8]  DEBUG api.ApiFactory - Truststore is null
2020-04-10 09:48:11,941  [http-nio-8080-exec-8]  DEBUG client.ApiConnectionFactory - Truststore is: null
2020-04-10 09:48:11,950  [http-nio-8080-exec-8]  INFO client.ApiConnectionImpl - Truststore in setTrustore: null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...