我试图使用spring配置文件为dev / prod服务器创建单独的数据源。
<beans profile="hsqldb">
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:sql/schema-hsqldb.sql"/>
<jdbc:script location="classpath:sql/test-data.sql"/>
</jdbc:embedded-database>
</beans>
<beans profile="oracle">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@//192.168.1.1:1521/XXX"/>
<property name="username" value="xxx"/>
<property name="password" value="xxx"/>
</bean>
</beans>
问题是我无法正确激活配置文件。我试过了两个web.xml
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>hsqldb</param-value>
</context-param>
和-Dspring.profiles.active=hsqldb
。
在这两种情况下,HSQLDB都在工作,但我在日志中也有Oracle异常(比如第二数据源也是活动的):
2014-08-13 10:39:57.216 ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - could not get database metadata
java.sql.SQLException: Wyjątek we-wy: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113) ~[ojdbc14-10.2.0.5.jar:Oracle JDBC Driver version - "10.2.0.5.0"]
如何强制弹簧仅使用一个轮廓而忽略另一个轮廓?