spring - Spring Framework JDBC - 数据库密码更改
问题描述
我正在运行部署在 Apache Tomcat 服务器中的 Spring 应用程序
用下面的豆子,
<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>
这个 bean 是如何工作的,这个 bean 是否会验证应用程序发出的每个数据库请求的数据库凭据?
当应用程序运行并更新数据库密码时,此 bean 是否会因任何应用程序请求而失败,或者由于它已经过验证而可以工作
解决方案
对于第一个问题,当Datasource object as bean(singleton)被创建时,第一次验证数据库信息。之后,当您将 Datasource bean 注入事务管理器 bean 时,数据库操作将由这些 bean 管理,因此打开会话、提交、回滚等。查看@Transactional注释用法。
对于第二个,您可以更改 jar/war/ear 中的 bean 定义,然后重新启动您的应用程序。但是您可以在配置文件中传递这些信息,例如您在 .properties 中指定的 application.properties/datasource.properties applicationContext.xml
。当您更改任何内容时,这将简化您的部署。如果不重新启动,您将无法为数据库传递新密码。
推荐阅读
- wordpress - WP_User_Query 中断并忽略它下面的所有代码
- security - 隐藏从后端获取的用户数据
- neo4j - 在 neo4j 中获取可选数据的最快方法
- youtube - 如何通过 v3 API 检测 youtube 视频是否包含付费推广
- javascript - Javascript加入不适用于创建的数组
- python - Python,使用相对路径导入的模拟
- reactjs - React 中的上传列表状态管理
- visual-studio - 由于致命错误,无法在 Github 上克隆存储库
- python - Tkinter 在尝试从子进程读取标准输出时冻结
- php - laravel 7 根据所选值动态显示输入