Я хочу увидеть полный рабочий пример кода в весенней версии MVC 3.x. Как лучше всего использовать один источник данных в Spring, но иметь возможность переключать базу данных из кода Java? Ниже приведены два моих источника данных, и они идут к одному и тому же серверу базы данных, но к разным базам данных.
<bean id = "ds_hydhccj" class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name = "driverClassName" value = "org.postgresql.Driver"></property>
<property name = "url" value = "jdbc:postgresql://localhost:5432/dbname"></property>
<property name = "username" value = "postgres"></property>
<property name = "password" value = "postgres"></property>
</bean>
Как иметь возможность использовать один источник данных и динамически переключать базы данных, когда я выбираю раскрывающийся список из внешнего интерфейса, который является именем базы данных, которое я хочу передать URL-адресу?
Для начала вам нужно получить контекст приложения, в вашем случае это можно сделать двумя способами
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml")
или
@Autowired
private ApplicationContext ctx;
затем вы
DataSource dataSource = (DataSource) context.getBean("ds_hydhccj");
Если вы используете фреймворк, такой как, например, спящий режим, я рекомендую вам создать два отдельных менеджера сущностей, которые поддерживают два разных соединения.
AbstractRoutingDataSource должен быть вашим другом. Это позволяет настроить один единственный компонент в Spring ApplicationContext с механизмом переключения его на один из n фактических источников данных.
Вы можете найти простой пример в другом ТАК вопрос.
Это веб-приложение, реализованное в Spring MVC 3.x.