Мои требования к приложениям означают, что мне нужно создавать компоненты приложения вручную во время выполнения, а затем добавлять их в контекст приложения.Spring: Использование PropertyPlaceholderConfigurer поддержка вне контекста приложения
Эти компоненты принадлежат сторонним библиотекам, поэтому я не могу их модифицировать, например. TibjmsConnectionFactory
Так что мой завод класс, который создает эти бобы должно быть снабжено Properties
объектом, который будет задавать имя пользователя, пароль и т.д. connectionTimeouts
В идеале я хотел бы использовать поддержку собственности Spring
«s так что я не нужно конвертировать строки в Целый и т.д.
Кроме того, Properties
при условии моей фабрики класса не будет один и то же свойством, используемым для по PropertyPlaceholderConfigurer
в моем общих ApplicationContext
Как Я достигаю этого, или это даже возможно?
public class MyCustomFactoryStrategy {
@Override
public TibjmsConnectionFactory create(Properties properties) {
TibjmsConnectionFactory connectionFactory = new TibjmsConnectionFactory();
connectionFactory.setServerUrl(properties.getProperty("emsServerUrl")); // this is a string
connectionFactory.setConnAttemptCount(new Integer(properties.getProperty("connAttemptCount"))); // this is an integer
...
return connectionFactory;
}
Так что предложение здесь, чтобы создать контекст пользовательских приложений вместо моей фабрики выше, а затем, как только я боб инициализируется я могу взять его от контекст приложения и добавить к моему основному? – DJ180
Да, здесь есть две вещи. Прежде всего, нужно получить дескриптор контекста, чтобы вы могли его программно настроить. Второй момент - инициализировать PropertyPlaceHolderConfigurer, чтобы вы могли передавать свойства системы извне приложения. –