Spring入门学习(外部属性文件) 第七节

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011171125/article/details/85224677

外部属性文件

导入连接数据库相应的jar包

  1. 添加相应的包
    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>
      	
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.40</version>
    </dependency>
    

创建Spring配置文件

  1. 创建beans-properties.xml配置文件
    以前使用这种方式配置数据源,但这种方式比较混杂,不利于人员寻找修改,所以引入了外部属性配置文件
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    	<property name="user" value="root"></property>
    	<property name="password" value="zwf1233"></property>
    	<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    	<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
    </bean>
    
  2. 我们创建一个db.properties的配置文件
    user=root
    password=zwf1233
    driverClass=com.mysql.jdbc.Driver
    jdbcUrl=jdbc:mysql://localhost:3306/test
    
  3. 修改Spring配置文件beans-properties.xml
    使用context:property-placeholder导入配置文件,以${xxx}的方式加载外部配置文件中的属性值。
    <!-- 导入属性文件 -->
    <context:property-placeholder location="classpath*:db.properties"/>
    
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    	<property name="user" value="${user}"></property>
    	<property name="password" value="${password}"></property>
    	<property name="driverClass" value="${driverClass}"></property>
    	<property name="jdbcUrl" value="${jdbcUrl}"></property>
    </bean>
    
  4. 创建测试类:
    	@Test
    	public void testProperties() throws SQLException {
    		ApplicationContext ctx = new ClassPathXmlApplicationContext(
    				"classpath*:beans-properties.xml");
    
    		DataSource dataSource= (DataSource) ctx.getBean("dataSource");
    		System.out.println(dataSource.getConnection());
    		
    	}
    
    测试结果:
    信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hgeby99z1omdrfqfwsqk4|2d3ffb89, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 1hgeby99z1omdrfqfwsqk4|2d3ffb89, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql://localhost:3306/test, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
    com.mchange.v2.c3p0.impl.NewProxyConnection@7042876b [wrapping: com.mysql.jdbc.JDBC4Connection@1fc8bb61]
    

猜你喜欢

转载自blog.csdn.net/u011171125/article/details/85224677