【问题标题】:How to make JNDI look up optional in Spring如何让 JNDI 在 Spring 中查找可选
【发布时间】:2018-06-21 20:49:55
【问题描述】:

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

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

【问题讨论】:

    标签: spring jndi


    【解决方案1】:

    使用配置文件,例如:

    <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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多