热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot使用java读取配置文件,DateSource测试,BomCP测试,AnnotationConfigApplicationContext的DataSource注入

一、配置注解读取配置文件(1)@PropertySource可以指定读取的配置文件,通过@Value注解获取值实例:@Prop
一、配置注解读取配置文件
        (1)@PropertySource可以指定读取的配置文件,通过@Value注解获取值
  实例:
          @PropertySource(value = {"classpath:jdbc.properties"})  
     注意如果是多个配置文件配置,用逗号隔开
           @PropertySource(value = {"classpath:jdbc.properties","classpath:jdbc.properties"})
配置注解的顺序不是必须的,可以任意
  (2)如果配置文件不存在如何处理,用注解中自带的方法标注。
  实例:
           @PropertySource(value = {"classpath:jdbc.properties"},ignoreResourceNotFound = true)
二、读取配置文件案例
    实战:
     1、建立BoneCPDataSource代替XML文档      
 1 package com.liuyangfirst.conf;
 2 
 3 import com.jolbox.bonecp.BoneCPDataSource;
 4 //import com.liuyangfirst.dao.UserDao;
 5 import org.springframework.beans.factory.annotation.Value;
 6 import org.springframework.context.annotation.Bean;
 7 import org.springframework.context.annotation.ComponentScan;
 8 import org.springframework.context.annotation.Configuration;
 9 import org.springframework.context.annotation.PropertySource;
10 
11 import javax.sql.DataSource;
12 
13 /**
14  * Created by liuya
15  * User: liuya
16  * Date: 2018/3/24
17  * Time:  22:06
18  * projectName:20180324versionone
19  */
20 
21 @Configuration
22 @PropertySource(value = {"classpath:jdbc.properties"}, ignoreResourceNotFound = true)
23 public class SpringConf {
24 
25     @Value("${jdbc.url}")
26     private String jdbcUrl;
27 
28     @Value("${jdbc.driverClassName}")
29     private String jdbcDriverClassName;
30 
31     @Value("${jdbc.username}")
32     private String jdbcUsername;
33 
34     @Value("${jdbc.password}")
35     private String jdbcPassword;
36 
37     @Bean(destroyMethod = "close",name = "dataSource")
38     public DataSource dataSource() {
39         BoneCPDataSource bOneCPDataSource= new BoneCPDataSource();
40         // 数据库驱动
41         boneCPDataSource.setDriverClass(jdbcDriverClassName);
42         // 相应驱动的jdbcUrl
43         boneCPDataSource.setJdbcUrl(jdbcUrl);
44         // 数据库的用户名
45         boneCPDataSource.setUsername(jdbcUsername);
46         // 数据库的密码
47         boneCPDataSource.setPassword(jdbcUsername);
48         // 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
49         boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
50         // 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
51         boneCPDataSource.setIdleMaxAgeInMinutes(30);
52         // 每个分区最大的连接数
53         boneCPDataSource.setMaxConnectionsPerPartition(100);
54         // 每个分区最小的连接数
55         boneCPDataSource.setMinConnectionsPerPartition(5);
56         return boneCPDataSource;
57     }
58 
59 
60 }
View Code

    2、建立jdbc.properties,写入需要配置的信息

1 jdbc.driverClassName=com.mysql.jdbc.Driver
2 jdbc.url=jdbc\:mysql\://localhost\:3306/taotao?characterEncoding\=utf8&useUnicode\=true&autoReconnect\=true&allowMultiQueries\=true
3 jdbc.username=root
4 jdbc.password=123456
View Code

   3、配置pom.xml

  1 xml version="1.0" encoding="UTF-8"?>
  2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4     <modelVersion>4.0.0modelVersion>
  5 
  6     <groupId>com.liuyangfirstgroupId>
  7     <artifactId>20180330versiontwoartifactId>
  8     <version>0.0.1-SNAPSHOTversion>
  9     <packaging>warpackaging>
 10 
 11     <name>20180330versiontwoname>
 12     <description>Demo project for Spring Bootdescription>
 13     <url>http://maven.apache.orgurl>
 14 
 15     <properties>
 16         <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
 17         <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
 18         <java.version>1.8java.version>
 19         <junit.version>4.12junit.version>
 20     properties>
 21     <parent>
 22         <groupId>org.springframework.bootgroupId>
 23         <artifactId>spring-boot-starter-parentartifactId>
 24         <version>1.4.1.RELEASEversion>
 25     parent>
 26 
 27     <dependencies>
 28         
 29         <dependency>
 30             <groupId>junitgroupId>
 31             <artifactId>junitartifactId>
 32             <version>${junit.version}version>
 33             <scope>testscope>
 34         dependency>
 35         <dependency>
 36             <groupId>org.springframeworkgroupId>
 37             <artifactId>spring-webmvcartifactId>
 38             <version>4.3.7.RELEASEversion>
 39         dependency>
 40 
 41         <dependency>
 42             <groupId>org.springframeworkgroupId>
 43             <artifactId>spring-testartifactId>
 44             <version>4.3.9.RELEASEversion>
 45         dependency>
 46         <dependency>
 47             <groupId>org.springframeworkgroupId>
 48             <artifactId>spring-testartifactId>
 49             <version>4.3.9.RELEASEversion>
 50         dependency>
 51         <dependency>
 52             <groupId>org.springframework.bootgroupId>
 53             <artifactId>spring-boot-starter-testartifactId>
 54             <scope>testscope>
 55         dependency>
 56         <dependency>
 57             <groupId>junitgroupId>
 58             <artifactId>junitartifactId>
 59             <version>4.12version>
 60         dependency>
 61         <dependency>
 62             <groupId>org.springframework.bootgroupId>
 63             <artifactId>spring-boot-testartifactId>
 64             <version>RELEASEversion>
 65         dependency>
 66         <dependency>
 67             <groupId>org.springframework.bootgroupId>
 68             <artifactId>spring-bootartifactId>
 69             <version>2.0.0.RELEASEversion>
 70         dependency>
 71         <dependency>
 72             <groupId>org.springframework.bootgroupId>
 73             <artifactId>spring-boot-autoconfigureartifactId>
 74             <version>1.4.1.RELEASEversion>
 75         dependency>
 76 
 77         <dependency>
 78             <groupId>javax.servlet.jspgroupId>
 79             <artifactId>jsp-apiartifactId>
 80             <version>2.2version>
 81             <scope>providedscope>
 82         dependency>
 83 
 84         <dependency>
 85             <groupId>javax.servletgroupId>
 86             <artifactId>servlet-apiartifactId>
 87             <version>2.5version>
 88             <scope>providedscope>
 89         dependency>
 90 
 91         <dependency>
 92             <groupId>commons-logginggroupId>
 93             <artifactId>commons-loggingartifactId>
 94             <version>1.2version>
 95         dependency>
 96 
 97         
 98         <dependency>
 99             <groupId>com.jolboxgroupId>
100             <artifactId>bonecp-springartifactId>
101             <version>0.8.0.RELEASEversion>
102         dependency>
103 
104         <dependency>
105             <groupId> org.apache.cassandragroupId>
106             <artifactId>cassandra-allartifactId>
107             <version>0.8.1version>
108 
109             <exclusions>
110                 <exclusion>
111                     <groupId>org.slf4jgroupId>
112                     <artifactId>slf4j-log4j12artifactId>
113                 exclusion>
114                 <exclusion>
115                     <groupId>log4jgroupId>
116                     <artifactId>log4jartifactId>
117                 exclusion>
118             exclusions>
119         dependency>
120 
121         <dependency>
122             <groupId>org.slf4jgroupId>
123             <artifactId>slf4j-simpleartifactId>
124             <version>1.7.25version>
125         dependency>
126         
127         <dependency>
128             <groupId>mysqlgroupId>
129             <artifactId>mysql-connector-javaartifactId>
130             <version>5.1.13version>
131         dependency>
132 
133         <dependency>
134             <groupId>com.google.guavagroupId>
135             <artifactId>guavaartifactId>
136             <version>21.0version>
137         dependency>
138 
139     dependencies>
140 
141     <build>
142         <finalName>${project.artifactId}finalName>
143         <plugins>
144             
145             <plugin>
146                 <groupId>org.apache.maven.pluginsgroupId>
147                 <artifactId>maven-resources-pluginartifactId>
148                 <configuration>
149                     <encoding>UTF-8encoding>
150                 configuration>
151             plugin>
152             
153             <plugin>
154                 <groupId>org.apache.maven.pluginsgroupId>
155                 <artifactId>maven-compiler-pluginartifactId>
156                 <configuration>
157                     <source>1.7source>
158                     <target>1.7target>
159                     <encoding>UTF-8encoding>
160                 configuration>
161             plugin>
162         plugins>
163     build>
164 
165 project>
View Code

   4、测试数据库联通

 1 package com.liuyangfirst.test;
 2 
 3 import com.liuyangfirst.conf.SpringConf;
 4 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 5 import javax.sql.DataSource;
 6 import java.sql.Connection;
 7 import java.sql.ResultSet;
 8 import java.sql.SQLException;
 9 import java.sql.Statement;
10 
11 /**
12  * Created by liuya
13  * User: liuya
14  * Date: 2018/3/30
15  * Time:  22:56
16  * projectName:20180330versiontwo
17  */
18 public class TestDateSource {
19 
20     public static void main(String[] args) {
21         // 通过Java配置来实例化Spring容器
22         AnnotationConfigApplicationContext cOntext= new AnnotationConfigApplicationContext(SpringConf.class);
23 
24         DataSource dataSource = context.getBean(DataSource.class);
25 
26         Connection cOnnection= null;
27 
28         try {
29             cOnnection= dataSource.getConnection();
30             if (connection != null) {
31                 System.out.println("Connection successful!");
32                 Statement stmt = connection.createStatement();
33                 ResultSet rs = stmt.executeQuery(" select * from tb_user "); // do something with the connection.
34                 while (rs.next()) {
35                     System.out.println(rs.getString(1)); // should print out "1"'
36                     System.out.println(rs.getString(2)); // should print out "1"'
37                 }
38             }
39         } catch (SQLException e) {
40             e.printStackTrace();
41         } finally {
42             try {
43                 connection.close();
44             } catch (SQLException e) {
45                 e.printStackTrace();
46             }
47         }
48     }
49 }
View Code

  5、测试结果

 


推荐阅读
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
author-avatar
皓月当空668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有