Для школьного проекта мне нужно создать простое приложение для рисования, которое может рисовать линии, овалы и прямоугольники.
В задании указано, что мне нужны кнопки панели инструментов и пункты меню для каждый тип формы.
Я бы хотел пойти немного дальше и дальше, сделав кнопки JToggleButtons
на панели инструментов и пункты меню JRadioButtonMenuItems
. Более того, я хочу, чтобы когда вы выбираете одну из кнопок панели инструментов, она отменяет выбор других, выбирает соответствующий пункт меню и отменяет выбор других пунктов меню. То же самое для выбора одного из пунктов меню.
Я знаю, что могу сгруппировать любую AbstractButton
с помощью ButtonGroup
, но я не уверен, что это правильный путь, потому что хотя он отлично справляется с одной "группой" кнопок, У меня есть контекст приложения Spring с bean-компонентом, свойства которого должны быть настраиваемыми, например DataSource или MailSender. Изменяемая конфигурация приложения ...
Рассмотрим следующий сценарий. У меня есть контекст приложения Spring с bean-компонентом, свойства которого можно настраивать, например DataSource
или MailSender
. Изменяемая конфигурация приложения управляется отдельным компонентом, назовем его конфигурацией
.
Теперь администратор может изменить значения конфигурации, такие как адрес электронной почты или URL-адрес базы данных, и я хотел бы повторно инициализировать сконфигурированный компонент во время выполнения.
Предположим, что я не могу просто изменить свойство настраиваемого компонента выше (например, созданного FactoryBean
или внедрения конструктора), но должен воссоздать сам компонент.
Есть мысли, как этого добиться? Я был бы рад получить совет, как организовать всю настройку. Ничего не исправлено. : -)
РЕДАКТИРОВАТЬ
Чтобы немного прояснить ситуацию: я не спрашиваю, как обновить конфигурацию или как ввести статические значения конфигурации. Я попробую пример:
<beans>
<util:map id="configuration">
<!-- initial configuration -->
</util:map>
<bean id="constructorInjectedBean" class="Foo">
<constructor-arg value="#{configuration['foobar']}" />
</bean>
<bean id="configurationService" class="ConfigurationService">
<property name="configuration" ref="configuration" />
</bean>
</beans>
Итак, есть компонент constructorInjectedBean
, который использует внедрение конструктора. Представьте, что создание bean-компонента очень дорого, поэтому использование области видимости прототипа или фабричного прокси не вариант, подумайте DataSource
.
Я хочу, чтобы каждый раз, когда конфигурация обновлялась ( через configurationService
компонент constructorInjectedBean
воссоздается и повторно вводится в контекст приложения и зависимые компоненты.
Мы можем смело предположить, что constructorInjectedBean
использует интерфейс, поэтому прокси-магия действительно возможна.
Я надеюсь, что немного прояснил вопрос.