我的后端学习大纲
我Spring学习大纲
1.1.数据源(连接池)的作用:
- 1.数据源(连接池)是提高程序性能而出现的
- 2.数据源的使用步骤 :
- 创建数据源对象,在对象创建的时候会初始化部分连接资源
- 使用连接资源的时候从数据源中获取
- 使用完毕后将连接资源归还给数据源
- 3.常见的数据源(连接池):
DBCP,C3P0,dRUID,BoneCP
1.2.手动实现数据源的开发步骤
a.手动创建c3p0数据源测试
- 1.导入数据源的坐标和数据库驱动坐标
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
- 2.创建数据源对象
- 3.设置数据源的基本连接数据:用户名,密码,数据库名
- 4.使用数据源获取连接资源和归还连接资源
b.手动创建Druid数据源:测试
c.数据源的解耦合:
- 1.如上可以看到上述的数据库信息填写在数据源中,耦合度较大,所以为了解耦合,就把数据源连接的相关信息单独的抽取出来,然后在创建数据源对象的时候,加载这个配置文件就可以了:
- 2.这样的话,就需要先读取配置文件中的数据源连接信息,然后进行连接:
4.3.Spring配置数据源的实现方式:
- 我们可以将
DataSource的创建权交给Spring容器去完成
DataSource有无参构造方法
,而Spring默认就是通过无参构造方法实例化对象的- DataSource要想使用需要通过set方法设置数据库连接信息,而Spring可以通过set方法进行字符串注入
a.在Spring中实现C3P0数据源的步骤
- 1.在Pom.xml中引入Spring依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
- 2.在bean文件中
- 测试从容器当中获取数据源:
b.抽取jdbc配置文件
- 1.和手动创建方式一样,为了解耦合,也可以数据源的连接信息抽取成jdbc配置文件,既可以解耦合又可以保护数据库密码等信息
- 2.抽取后就是
applicationContext.xml文件加载jdbc.properties配置文件获得连接信息
- 3.抽取后,首先就引入context命名空间和约束路径
- 4.然后在配置文件中添加properties标签,以使得 Spring容器加载properties文件:
<context:property-placeholder location="xx.properties"/>
- 5.更改核心配置文件:
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
- 6.整个配置文件的代码: