Я запускаю приложение Spring Boot в экземпляре Tomcat, упакованном как военный файл. Я хотел бы иметь возможность добавлять «пакеты» к моему экземпляру в виде услуг отдыха. Для этого мне нужно иметь возможность настраивать scanBasePackages в аннотации @SpringBootApplication во время выполнения. т. е. когда tomcat запускается. Теперь у меня есть ...Настройка сканирования базового пакета для приложения Spring Boot в Runtime
@SpringBootApplication(scanBasePackages="path1, path2")
public class RestApplication extends SpringBootServletInitializer {
//code
}
... но я хотел бы иметь path2 быть настраиваемым и поочередно иметь возможность добавлять путь3 и т.д., если это необходимо. Как я могу это достичь? Я понимаю, что я не могу сконфигурировать String в аннотации, поэтому я задаю вопрос о том, какие другие альтернативы я имею в этой аннотации для установки этого.
Cheers.
Ах ура! Но, для моего случая, оказывается, что проблема немного вернулась. Для «общей» установки я хочу, чтобы в ней не было дополнительного файла конфигурации. Если я делаю это файлом, который не существует, или пустой строкой, он жалуется, что FileNotFound и война не запускаются. Поэтому единственное, что я могу придумать, это иметь фиктивный xml-файл, который не имеет ничего в нем для стандартной установки. Для этого, возможно, мне нужно использовать какую-то переменную env, так что мое значение ImportResource может быть «classpath: $ {ENV_VAR} spring-context.xml». Если ENV_VAR не установлен, по умолчанию используется фиктивный spring-context.xml. мысли? – crowmagnumb
@crowmagnumb вы можете объявить свою конфигурацию как часть настраиваемого профиля, тогда импорт не будет запускаться при запуске «пакета по умолчанию» таким образом. После активации требуется профиль через стандартную Spring spring.profiles.active ваша пользовательская конфигурация будет загружена без каких-либо проблем. – ivanenok