Spring-配置数据源

一、引子

我们在上一篇已经了解了Spring-配置文件的相关内容,但是我们配置的所有类都是我们定义的,我们似乎很轻松地把这些类的创建交给Spring容器来管理了。那么,我们是否能配置一些不是由我们定义的类呢,把这些外部的类也交由Spring容器来管理?我们是否很快想到了一个我们完成Web项目的对象——数据源。我们可以先回顾一下我们在JavaWeb专栏介绍数据库连接池的内容:我们声明了数据库的相关参数:驱动、地址、用户名、密码,之后我们从配置文件中读取到这些配置,然后调用连接池的方法来获取一个数据源,通过数据源来获取数据库连接,以此来降低在原生JDBC操作中频繁创建连接又释放资源造成的性能压力。

关键来了:我们怎么运用上一节配置文件的知识在Spring中优雅地创建这样一个数据源呢?

二、快速实现

通过引子的最后一段话,我们可以总结出我们需要做以下几件事: 

1、引入新的依赖:数据库驱动,连接池
        
            mysql
            mysql-connector-java
            8.0.16
        

        
            com.alibaba
            druid
            1.2.6
        
2、声明数据库连接信息
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://114.115.xxx
jdbc.username=xx
jdbc.password=xxxx
3、在xml配置文件中注册Bean,并完成DI。注意这里引入了JDBC信息的properties文件



    

    
        
        
        
        
    

4、于是,我们可以测试代码中直接从Spring容器中索要数据源对象,并从数据源中拿到一个Connection对象。
import com.alibaba.druid.pool.DruidDataSource;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.sql.SQLException;

public class DataSourceTest {

    @Test
    public void testDataSource() throws SQLException {
        ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-datasource.xml");
        DruidDataSource dataSource = ioc.getBean(DruidDataSource.class);
        System.out.println(dataSource.getConnection()); // com.mysql.cj.jdbc.ConnectionImpl@4ea5b703
    }
}

至此,我们发现,使用Spring配置数据源与我们使用原生的Java代码配置数据源的做法本质上是一样的。我们似乎又前进了一小步,让我先停下来思考一下:如果所有类都要手动地在xml配置文件里进行声明,是否会造成xml文件的"爆炸"呢?当然Spring官方也会考虑到一点,请读者关注下一篇文章,我们将介绍Spring框架提供的一个更优的做法来创建对象——Spring-注解开发。

你可能感兴趣的:(spring,数据库,mysql)