Database 工厂和dao使用spring支持一些数据库
目前,我们有一个应用程序使用支持mysql的spring。 有些人更喜欢使用甲骨文。 所以我用spring寻找一种方法,让每个数据库都有一个抽象工厂,每个数据库都有一个dao。 如何在所有组件之间放置胶水? 组件如何知道需要使用的数据源?Database 工厂和dao使用spring支持一些数据库,database,spring,dao,factory-pattern,Database,Spring,Dao,Factory Pattern,目前,我们有一个应用程序使用支持mysql的spring。 有些人更喜欢使用甲骨文。 所以我用spring寻找一种方法,让每个数据库都有一个抽象工厂,每个数据库都有一个dao。 如何在所有组件之间放置胶水? 组件如何知道需要使用的数据源? spring是否有一些好的实践可以做到这一点?不清楚您的问题到底是什么,但spring概要文件可以解决所有问题。首先,需要为每个受支持的数据库定义两个数据源s: <bean id="oracleDataSource" class="..." profil
spring是否有一些好的实践可以做到这一点?不清楚您的问题到底是什么,但spring概要文件可以解决所有问题。首先,需要为每个受支持的数据库定义两个
数据源
s:
<bean id="oracleDataSource" class="..." profile="oracle">
<!-- -->
</bean>
<bean id="mysqlDataSource" class="..." profile="mysql">
<!-- -->
</bean>
如您所见,定义了两个bean来实现相同的接口。如果在没有配置文件的情况下执行此操作,然后自动关联它们:
@Resource
private MonkeyDao monkeyDao;
由于未解析的依赖关系,Spring启动将失败。但是,如果您启用其中一个配置文件(mysql或oracle),Spring将只实例化并创建用于匹配配置文件的bean。不清楚您的问题到底是什么,但Spring配置文件可以解决所有问题。首先,需要为每个受支持的数据库定义两个
数据源
s:
<bean id="oracleDataSource" class="..." profile="oracle">
<!-- -->
</bean>
<bean id="mysqlDataSource" class="..." profile="mysql">
<!-- -->
</bean>
如您所见,定义了两个bean来实现相同的接口。如果在没有配置文件的情况下执行此操作,然后自动关联它们:
@Resource
private MonkeyDao monkeyDao;
由于未解析的依赖关系,Spring启动将失败。但是,如果您启用其中一个配置文件(mysql或oracle),Spring将只实例化并创建用于匹配配置文件的bean。根据条件从池/工厂获取连接?如果是这样,请在问题中更清楚地说明根据条件从任一池/工厂获取连接?如果是这样的话,请在你的问题中说得更清楚好,我们通过application-context.property启用profile,我应该这样写:spring.profiles.active=mysql似乎很有趣还有其他建议吗?@roberttrudel:你是说其他方法?查看ok,我们通过application-context.property启用profile,我应该放一些类似于:spring.profiles.active=mysql的东西。还有其他建议吗?@roberttrudel:你是说其他方法?退房