#java #spring-boot #properties #resources #gcloud
#java #spring-boot #свойства #Ресурсы #gcloud
Вопрос:
я пытаюсь преобразовать проект приложения Java в spring boot, и я пытаюсь развернуть этот spring boot project jar в gcp с помощью приведенного ниже cmd
gcloud app deploy <projectname>.jar
внутри моего приложения я использую одну из зависимостей ядра apache, для которой требуется 2 файла свойств, и она размещена в каталоге проекта
--PROJECTNAME<root>
----/.idea
----/config/bin/config.properties
----/src
------/main
------/...
------/...
и я могу задать только путь для файлов свойств, остальные вещи будут обрабатываться файлами класса зависимостей apache. он отлично работает в IDE и как jar, если эти свойства доступны в самом расположении jar.
итак, когда я развертываю этот проект в gcp, используя приведенный выше cmd, я вижу, что этот проект скопирован в / workspace / directory в gcp app engine. итак, либо мне нужно скопировать эти файлы свойств в / workspace / directory в gcp, либо мне нужно получить доступ к файлу свойств внутри jar, но я могу передать только путь (строку). в файле класса apache приведенный ниже код используется для чтения файлов свойств.
BufferedReader reader = Files.newBufferedReader((new File( <path which i can pass> "/bin/config.properties")).toPath(), Charset.defaultCharset());
and
FileInputStream fis = new FileInputStream(<path which i can pass> "/bin/config.properties");
Ответ №1:
Я думаю, вы можете поместить свои конфигурационные файлы в src / main / resources, поскольку я вижу, что ваша конфигурация находится за пределами каталога src, поэтому в классе, который вам нужен, вы можете сделать, getClass().getClassLoader().getResource("config/bin/config.properties")
чтобы получить файл в виде URL и открыть для него InputStream.