не судите об этом вопросе) Я хочу реализовать WEB-установщик для своего приложения Spring Boot, и очень интересным моментом является то, что мое приложение играет 2 роли: установщик и Backend (приложение). Когда я впервые запускаю свое приложение, мне нужно сказать Spring не инициализировать определенные bean-компоненты (Hibernate (в то время как запускаемое приложение не должно запускаться, потому что база данных может не существовать), ActiveMq и другие bean-компоненты, которые будут добавлены в процессе установки) и показать несколько html-страниц с руководством по установке. Также мне нужно предотвратить доступ к конечным точкам, где возникает некоторая логика с базой данных. Когда установка будет завершена, я создам новый application.properties или какой-либо другой файл с настройками и скажу Spring инициализировать все необходимые bean-компоненты с помощью Hibernate, ActiveMQ и других. Возможно, я сделаю перезапуск приложения и новое поведение, которое будет зависеть от установки. И при следующих запусках мое приложение не будет отображать руководство по установке. Чтобы упростить вопрос: мне нужно изменить поведение запуска Spring Boot Application. Ради интереса могу привести пример с человеком: мне нужно заставить человека жить без органов, и этот человек будет жить очень хорошо, и если я захочу, я могу добавить органы человеку, и он будет жить очень хорошо))
Я бы (но не совсем уверен, как это сделать) создать отдельный applicationContext со спящим режимом и всем, что от него зависит. Этот дочерний applicationContext будет загружаться по запросу ... всем, что в нем нужно (возможно, это может быть ленивый компонент инициализации в родительском applicationContext). (/ я пытаюсь не судить, зачем это нужно.)
для меня звучит как проблема XY: meta.stackexchange.com/questions/66377/what-is-the-xy-proble m (и, конечно, мы рассуждаем о вопросе, в этом суть SO;))
@meriton я кардинально изменил вопрос
В jar-файле spring-boot-autoconfigure есть много условных аннотаций. Взгляните на аннотацию org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean или org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass или исследуйте другие в том же пакете. Могут ли некоторые из них помочь вам
Или реализовать пользовательское условие. Проверить аннотацию @Profile




Вы можете использовать аннотацию @Profile. Проверьте эту ссылку: https://www.mkyong.com/spring/spring-profiles-example/
отличный ответ, сэр! Верю, что ваш ответ поможет нам в решении этой задачи!
Это непросто. Вы уверены, что это лучший способ решить любую вашу проблему? Увы, не зная, зачем вам это нужно, мы не можем указать более простые альтернативы ...