【问题标题】:Spring Framework JDBC - Database password changesSpring Framework JDBC - 数据库密码更改
【发布时间】:2018-12-17 02:27:47
【问题描述】:

正在运行部署在 Apache Tomcat 服务器中的 Spring 应用程序

用下面的bean,

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/appln" />
        <property name="username" value="root" />
        <property name="password" value="password" />
        <property name="initialSize" value="3" />
        <property name="maxActive" value="10" />
    </bean>
  1. 这个 bean 是如何工作的,这个 bean 是否会验证应用程序发出的每个 DB 请求的 DB 凭据?

  2. 当应用程序正在运行并且数据库密码已更新时,此 bean 是否会因任何应用程序请求而失败,或者由于它已经过验证而可以工作

【问题讨论】:

    标签: spring spring-mvc jdbc spring-jdbc


    【解决方案1】:

    对于第一个问题,在创建Datasource object as bean(singleton)时,第一次验证数据库信息。之后,当您将 Datasource bean 注入事务管理器 bean 时,数据库操作将由这些 bean 管理,因此打开会话、提交、回滚等。查看@987654321 @注解用法。

    对于第二个,您可以更改 jar/war/ear 中的 bean 定义,然后重新启动您的应用程序。但是您可以在配置文件中传递这些信息,例如您在applicationContext.xml 中指定的 application.properties/datasource.properties。当您更改任何内容时,这将简化您的部署。如果不重新启动,您将无法为数据库传递新密码。

    【讨论】:

      【解决方案2】:

      补充一下 Semih Okan Pehlivan 所说的,

      如果您将属性放在 application.properties 中,则可以刷新数据库的密码,但您需要将 spring-cloud-starter 添加到您的依赖项中。

      【讨论】:

        猜你喜欢
        • 2017-01-08
        • 1970-01-01
        • 2013-02-06
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        相关资源
        最近更新 更多