如何在 Spring 中使 JNDI 查找可选

How to make JNDI look up optional in Spring

无论如何我们可以在 spring appllicationcontext xml 配置中使 JNDI 查找可选。

我想在两个不同的环境中部署具有 JNDI 设置(数据库连接)的同一个应用程序。在一个环境中,我们需要数据库连接,而在另一个环境中,我们不需要数据库连接。您能否建议我们是否可以在不修改 applicationcontext.xml 的情况下实现此目的(我的意思是不注释掉 JNDI 配置和其他相关的数据库连接 bean 注入)。

使用配置文件,例如:

<beans profile="prod">
   <jee:jndi-lookup id="dbDataSource" jndi-name="jdbc/DatabaseName"expected-type="javax.sql.DataSource" />
</beans>

<beans profile="dev,default">
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
      <property name="driverClassName" value="${jdbc.driverClassName}" />
      <property name="url" value="${jdbc.url}" />
      <property name="username" value="${jdbc.username}"/>
      <property name="password" value="${jdbc.password}"/>
      <property name="connectionCachingEnabled" value="true"/>
  </bean>type="javax.sql.DataSource" />
</beans>

然后当你启动你的应用程序时说出系统参数的配置文件:

-Dspring.profiles.actibe=prod

默认配置文件将是 dev。