在我的 Web 应用程序(spring + tomcat)中,下面是applicationContext.xml
. 所有数据库信息 ( username
, password
) 当前直接嵌入。但是现在在我们的应用程序中,服务器派生了一个新JVM
实例,这个新JVM
实例需要与同一个数据库进行通信。
<bean id="meetingDBSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:initialSize="10" p:maxActive="50" p:minIdle="5" p:maxIdle="35" p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://10.0.1.100/warehouse_mon?useLegacyDatetimeCode=false&useUnicode=true&serverTimezone=UTC&" p:username="user" p:password="pass" p:testOnBorrow="true" p:validationQuery="SELECT 1" />> <bean id="appDB" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"> <ref bean="meetingDBSource" /> </property> </bean>
所以我希望在启动它时将所需的信息作为参数传递。现在有什么堂堂正正的获取这个数据库信息的方法呢?
最初在我的 中applicationContext.xml
,我制作了一张地图并将所有数据库信息插入到地图中。使用 Spring 特殊表达式,我正在获取值,然后使用它们进行BasicDataSource
初始化。在我的代码中,使用依赖注入我获得了对该地图的访问权,然后获得了信息。
但我想应该有一种更标准的工厂方式来做这件事。(或者可能使用context-param
,如果是,如何使用?)