Как прочитать файл свойств с IntelliJ - PullRequest
0 голосов
/ 02 октября 2018

У меня есть служба Spring Boot, и я использую IntelliJ для ее запуска.У меня в папке resources есть файл с именем "application.properties".Я хочу, чтобы intelliJ прочитал этот файл .properties, как мне это сделать?Единственный способ заставить его использовать свойства в файле .properties - добавить их непосредственно в Environment VM Option.

Я пытался сделать что-то вроде -Dspring.config.location:/src/main/resources/application.properties, но это не сработало.

ПапкаСтруктура:

Services
 -src
   -main
     -resources
       -application.properties
 -target
 -pom.xml

@Component
@Configuration
@EnableAutoConfiguration
@PropertySource({ "classpath:application.properties"})
@EntityScan(basePackages = "com.org")
public class AppConfig {

}

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

В случае Spring Boot вам не нужно передавать какие-либо параметры при запуске загрузочного приложения.

Когда загружается загрузочное приложение Spring, оно автоматически проверяет, существует ли файл свойств в определенных местах, включая src/main/resources, src/main/resources/config.

Если вы сохраните файл свойств в этих папках, приложение автоматически подберет файлы и зарегистрирует свойства.Так что в вашем AppConfig вам не нужны @Component, @EnableAutoConfiguration, @PropertySource и @EntityScan, потому что @Configuration уже включает @Component, что позволяет @Value работать.

Я думаю, что проблема может возникнуть, когда вы вызываете свойство в конструкторе AppConfig, потому что при создании класса @Value еще не внедрен.

Если вы хотите проверить, является ли значение свойстваВнедренный Spring, вы можете сделать небольшой тест в классе приложения, например:

@SpringBootApplication
public class ApppropApplication {

    @Autowired
    private AppConfig appConfig;

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

    @PostConstruct
    public void init(){
        System.out.println(appConfig.getTestProperty());
    }
}

Если ваша проблема все еще существует, было бы здорово предоставить больше информации (журналы ошибок и всю структуру класса)

Надеюсь, это поможет!Удачного кодирования:)

0 голосов
/ 02 октября 2018

Идеальный способ для вашего проекта Springboot включить файл свойств - это импортировать, используя аннотацию "@PropertySource" в вашем начальном классе.Пожалуйста, проверьте свой стартовый класс.Это должно включать что-то вроде этого ниже

@PropertySource({ "classpath:application-example.properties"})
@EntityScan(basePackages = "com.org")

public class YourProjectLauncher extends SpringBootServletInitializer {

@Value("${your.db.url}")
private transient String dataSourceUrl;

@Value("${your.db.username}")
private transient String userName;

@Value("${your.db.password}")
private transient String password;

@Value("${your.db.driver-class-name}")
private transient String driverClass;

public static void main(String... args) {

    SpringApplication.run(YourProjectLauncher.class, args);
}

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

Также было бы лучше, если бы вы добавили начальный класс в свой вопрос, чтобы было легче проанализировать проблему, с которой вы столкнулись.

Примечание. - Если вы уже сделалиВ этом, пожалуйста, добавьте больше информации к вопросу, будем рады помочь.

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