Рассмотрим следующий сценарий. У меня есть контекст приложения Spring с bean-компонентом, свойства которого следует настраивать, например DataSource
или MailSender
. Изменяемая конфигурация приложения управляется отдельным bean-компонентом, пусть ' s назовите это конфигурацией
.
Теперь администратор может изменить значения конфигурации, такие как адрес электронной почты или URL базы данных, и я хотел бы повторно инициализировать настроенный bean-компонент во время выполнения.
Предположим, что я нельзя просто изменить свойство конфигурируемого bean-компонента (например, созданного с помощью FactoryBean
или внедрения конструктора), но необходимо воссоздать сам bean-компонент.
Есть мысли о том, как этого добиться? Я был бы рад получить совет, как организовать всю настройку. Ничего не исправлено. : -)
РЕДАКТИРОВАТЬ
Чтобы немного прояснить ситуацию: я не спрашиваю, как обновить конфигурацию или как ввести статические значения конфигурации. Я попробую пример:
Итак, есть компонент constructorInjectedBean
, который использует внедрение конструктора.
Поэтому я попробовал следующее в /Configuration/TypoScript/setup.txt: plugin.myextension ....
Я расширил таблицу страниц и теперь хочу использовать некоторые данные в объекте домена под названием «Теги ".
Итак, я попробовал следующее в /Configuration/TypoScript/setup.txt
:
plugin.myextension.persistence.classes.Tx_myextension_Domain_Model_Tag {
mapping {
tableName = pages
recordType = Tx_myextension_Domain_Model_Tag
columns {
tx_myextension_tag_name.mapOnProperty = name
uid.mapOnProperty = id
}
}
}
Но похоже, что расширение пытается получить доступ к таблице Tx_myextension_Domain_Model_Tag (которой не существует)
Это Я получаю ошибку:
Tx_Extbase_Persistence_Storage_Exception_SqlError`
Таблица 'tx_myextension_domain_model_tag' не существует: SELECT tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. * FROM tx_myextension_domain_model_tag. 121 --- 1853032-
У меня есть класс с API, который позволяет мне запрашивать объекты до тех пор, пока он не выдаст исключение IndexOutOfBoundsException
.
Я хочу поместить его в итератор, чтобы иметь возможность писать более чистый код. Однако мне нужно перехватить исключение, чтобы остановить итерацию:
static IEnumerable
Но ...
При использовании с выражением yield оператор возврата не может появляться в блок catch или в блоке try, который имеет один или несколько пунктов catch. Для большего информацию см. в разделе Обработка исключений Заявления (Справочник по C #). Заявления (Справочник по C #). (из msdn )
Как еще можно обернуть этот api?