三、读取外部的资源配置文件并配置数据库连接池

1、读取外部的资源配置文件

通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法:

  1. @Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
  2. @ComponentScan(basePackages = "cn.mmzs.springboot") //配置扫描包
  3. @PropertySource(value= {"classpath:jdbc.properties"})
  4. public class SpringConfig {
  5.  
  6. @Value("${jdbc.url}")
  7. private String jdbcUrl;
  8.  
  9. @Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
  10. public UserDao getUserDAO(){
  11. return new UserDao(); // 直接new对象做演示
  12. }
  13.  
  14. }

思考:

1)、  如何配置多个配置文件?

  1. //获取多个资源文件
  2. @PropertySource(value= {"classpath:jdbc.properties","classpath:log4j.properties","xxx"})

2)、如果配置的配置文件不存在会怎么样?

  1. //使用,ignoreResourceNotFound设置为true来进行忽略没有找到的配置文件
  2. @PropertySource(value= {"classpath:jdbc.properties"},ignoreResourceNotFound = true)//获取一个资源文件
  3. @PropertySource(value= {"classpath:jdbc.properties","classpath:log4j.properties","xxx"},ignoreResourceNotFound = true)//获取多个资源文件

2、配置数据库连接池

a、导入依赖

  1. <!-- 连接池 -->
  2. <dependency>
  3. <groupId>com.jolbox</groupId>
  4. <artifactId>bonecp-spring</artifactId>
  5. <version>0.8.0.RELEASE</version>
  6. </dependency>

b、利用xml文件配置时:

  1. jdbc.driverClassName=com.mysql.jdbc.Driver
  2. #数据库的路径
  3. #url=jdbc:mysql://localhost:3306/springboot
  4. jdbc.url=jdbc:mysql://localhost:3306/house
  5. jdbc.username=root
  6. jdbc.password=123456
  7. #定义初始连接数
  8. initialSize=0
  9. #定义最大连接数
  10. maxActive=20
  11. #定义最大空闲
  12. maxIdle=20
  13. #定义最小空闲
  14. minIdle=1
  15. #定义最长等待时间
  16. maxWait=60000

jdbc.properties

  1. <!-- 定义数据源 -->
  2. <bean id="dataSource" class="cn.mmzs.springboot.javaconfig"
  3. destroy-method="close">
  4. <!-- 数据库驱动 -->
  5. <property name="driverClass" value="${jdbc.driverClassName}" />
  6. <!-- 相应驱动的jdbcUrl -->
  7. <property name="jdbcUrl" value="${jdbc.url}" />
  8. <!-- 数据库的用户名 -->
  9. <property name="username" value="${jdbc.username}" />
  10. <!-- 数据库的密码 -->
  11. <property name="password" value="${jdbc.password}" />
  12. <!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 -->
  13. <property name="idleConnectionTestPeriod" value="60" />
  14. <!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 -->
  15. <property name="idleMaxAge" value="30" />
  16. <!-- 每个分区最大的连接数 -->
  17. <!--
  18. 判断依据:请求并发数
  19. -->
  20. <property name="maxConnectionsPerPartition" value="100" />
  21. <!-- 每个分区最小的连接数 -->
  22. <property name="minConnectionsPerPartition" value="5" />
  23. </bean>

c、参考xml配置改造成java配置方式:

  1. @Configuration // 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
  2. @ComponentScan(basePackages = "cn.mmzs.springboot") // 配置扫描包
  3. @PropertySource(value = { "classpath:jdbc.properties" }, ignoreResourceNotFound = true)
  4. public class SpringConfig {
  5.  
  6. @Value("${jdbc.url}")
  7. private String jdbcUrl;
  8.  
  9. @Value("${jdbc.driverClassName}")
  10. private String jdbcDriverClassName;
  11.  
  12. @Value("${jdbc.username}")
  13. private String jdbcUsername;
  14.  
  15. @Value("${jdbc.password}")
  16. private String jdbcPassword;
  17.  
  18. @Bean(destroyMethod = "close")
  19. public DataSource dataSource() {
  20. BoneCPDataSource boneCPDataSource = new BoneCPDataSource();
  21. // 数据库驱动
  22. boneCPDataSource.setDriverClass(jdbcDriverClassName);
  23. // 相应驱动的jdbcUrl
  24. boneCPDataSource.setJdbcUrl(jdbcUrl);
  25. // 数据库的用户名
  26. boneCPDataSource.setUsername(jdbcUsername);
  27. // 数据库的密码
  28. boneCPDataSource.setPassword(jdbcUsername);
  29. // 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
  30. boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
  31. // 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
  32. boneCPDataSource.setIdleMaxAgeInMinutes(30);
  33. // 每个分区最大的连接数
  34. boneCPDataSource.setMaxConnectionsPerPartition(100);
  35. // 每个分区最小的连接数
  36. boneCPDataSource.setMinConnectionsPerPartition(5);
  37. return boneCPDataSource;
  38. }
  39.  
  40. }

思考: 如何使用该DataSource对象?

该咋用咋用,该注入就注入,该引用就引用,和之前一样,这里只是将资源的配置方式从xml文件形式修改成了java代码的形式而已。

SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池的更多相关文章

  1. Spring读取外部的资源配置文件—@PropertySource和@Value实现资源文件配置

    通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值: @PropertySource注解主要是让Spring的Environment接口读取属性配置文件用的,标识在@ ...

  2. SpringBoot学习(二)-->Spring的Java配置方式

    二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @ ...

  3. Java配置方式读取外部的资源配置文件

    通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: package cn.qlq; import org.springframework.context. ...

  4. Spring Boot 项目学习 (三) Spring Boot + Redis 搭建

    0 引言 本文主要介绍 Spring Boot 中 Redis 的配置和基本使用. 1 配置 Redis 1. 修改pom.xml,添加Redis依赖 <!-- Spring Boot Redi ...

  5. SpringBoot系列之Spring容器添加组件方式

    SpringBoot系列之Spring容器添加组件方式 本博客介绍SpringBoot项目中将组件添加到Spring容器中的方法,SpringBoot项目有一个很明显的优点,就是不需要再编写xml配置 ...

  6. m_Orchestrate learning system---二十九、什么情况下用数据库做配置字段,什么情况下用配置文件做配置

    m_Orchestrate learning system---二十九.什么情况下用数据库做配置字段,什么情况下用配置文件做配置 一.总结 一句话总结: 配置文件 开发人员 重置 数据库 非开发人员 ...

  7. spring学习(三) ———— spring事务操作

    前面一篇博文讲解了什么是AOP.学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理. --wh 一.jdbcTemplate 什么是JdbcTem ...

  8. SpringBoot学习笔记(14)----应用监控-HTTP方式

    SpringBoot提供了三种应用监控的方式 通过HTTP(最简单方便) 通过JMX 通过远程shell 这里就是用最简单的方式来使用SpringBoot的应用监控 首先引入依赖,pom文件如下 &l ...

  9. SpringBoot学习(一)-->Spring的发展

    一.Spring的发展 1.Spring1.x 时代 在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xm ...

随机推荐

  1. leetcode - valid number 正则表达式解法

    import java.util.regex.Pattern; public class Solution { Pattern p = Pattern.compile("^[\\+\\-]? ...

  2. CSS3新增特性及知识学习线路

  3. 代码文档生成工具Doxygen的使用备忘

    Doxygen备忘 下载与安装 一般步骤 生成配置文件Doxyfile: doxygen (-s) -g 建立目录结构, 比如Doxyfile文件\doc文件夹(输出)\src文件夹(放代码) -&g ...

  4. centos7下zabbix记录

    Zabbixrpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm - ...

  5. Flask框架(二)

    request @app.route('/requests/', method=['GET', 'POST']) def req(): print(request.data) #请求方式 print( ...

  6. JVM运行时数据区(二)

    4.本地方法栈 本地方法栈与虚拟机栈所发挥的作用是非常相似的,它们之间的区别不过是虚拟机栈为虚拟机执行Java方法服务,而本地方法栈则为虚拟机使用到的Native方法服务. 与Java虚拟机栈一样本地 ...

  7. java实操之使用jcraft进行sftp上传下载文件

    sftp作为临时的文件存储位置,在某些场合还是有其应景的,比如对账文件存放.需要提供一个上传的工具类.实现方法参考下: pom.xml中引入类库: <dependency> <gro ...

  8. eclipse如何使用log4j详解,你get了吗???

    1.下载log4j    jar包 log4j下载地址 http://logging.apache.org/log4j/2.x/download.html 2.log4j   jar包引入项目 接下来 ...

  9. python2程序移植python3的一些注意事项

    1 queue: python2: import Queue python3: import queue 2 queue size: python2: cache = Queue.Queue(maxs ...

  10. python应用-爬取猫眼电影top100

    import requests import re import json import time from requests.exceptions import RequestException d ...