Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 工厂和dao使用spring支持一些数据库_Database_Spring_Dao_Factory Pattern - Fatal编程技术网

Database 工厂和dao使用spring支持一些数据库

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

目前,我们有一个应用程序使用支持mysql的spring。 有些人更喜欢使用甲骨文。 所以我用spring寻找一种方法,让每个数据库都有一个抽象工厂,每个数据库都有一个dao。 如何在所有组件之间放置胶水? 组件如何知道需要使用的数据源?
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:你是说其他方法?退房