在bean配置资源或系统部署,如数据库的连接时,需要这样:
要包含相关jar包:c3p0.jar 和mysql.connector.jar
xml配置:
1 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 2 <property name="user" value="root"></property> 3 <property name="password" value="1234"></property> 4 <property name="driverClass" value="com.mysql.jdbc.Driver"></property> 5 <property name="jdbcUrl" value="jdbc:mysql:///test"></property> 6 7 </bean>
main函数调用:
1 public static void main(String[] args) throws SQLException{ //可能有异常,这里不捕捉 2 Application ctx = new ClassPathXmlApplicationContext("jdbc.xml"); 3 DataSource datasource = (DataSource)ctx.getBean("dataSource"); 4 System.out.println(dataSource.getConnection()); //com.mchange.v2.c3p0.impl.NewProxyConnection@3ca6b9 表示成功 5 }
如果数据库有更改,在配置里改一下相关信息就可以。但是,实际项目中并不这样,因为实际中没有这么简单的配置,包含了大量的信息,如下: (这里信息算是少的)
也看出来,实际中用这样的符号:${},代表引用外部的变量
通过把配置信息独立到一个文件里面,bean用${}方式引用, 便于维护、更清晰
所以,上面xml配置可以改成这样:
新建一个文件专门存放可能需要修改的配置: db.properties
1 user=root 2 password=1234 3 driverclass=com.mysql.jdbc.Driver 4 jdbcurl=jdbc.mysql:///test
在jdbc.xml中,添加context命名空间,用来引入文件
1 <!--导入属性文件--> 2 <context:property-placeholder location="classpath:db.properties"/> 3 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 4 <property name="user" value="${user}"></property> 5 <property name="password" value="${password}"></property> 6 <property name="driverClass" value="${driverclass}"></property> 7 <property name="jdbcUrl" value="${jdbcurl}"></property> 8 </bean>
这样,要修改数据库信息,只需要在db.properties文件中修改即可。不必去复杂的xml中去找。提高了维护的效率