SpringBoot-属性文件properties形式

上述使用JavaBean的配置可以实现数据源的配置,但是如果配置文件中的内容需要被多次调用就没那么方便了,所以我们学习新的方法,将Properties文件中的公用属性映射到类中的属性

SpringBoot中使用Java方式配置步骤如下:

  1. 创建一个名为application.properties <必须>的文件

  2. 将jdbc.properties中的内容放入application.properties 中

  3. 创建一个Java类例如JDBCProperties,加入@ConfigurationProperties注解(此注解拥有一个prefix属性,可以指定前缀)

  4. 在此类中声明的属性必须和Properties文件中的属性名一致(如果有前缀则为前缀点后的属性名)

  5. 此类需要提供getter、setter方法用于注入属性,可以使用lombok

  6. 在其他类中就可以直接使用此类中的属性了

packagecn.rayfoo.config;

importlombok.Data;
importorg.springframework.boot.context.properties.ConfigurationProperties;

/**
* @author 张瑞丰
* @description
* @date 2019/11/4
*/
@ConfigurationProperties(prefix="jdbc")
@Data
publicclassJDBCProperties{

   privateStringurl;

   privateStringdriver;

   privateStringusername;

   privateStringpassword;

}

优化Java配置代码

在上一篇文章中,我们介绍了JavaBean配置的方法,这里我们优化一下其代码

  1. 去掉@PropertiesSource注解

  2. 新增@EnableConfigurationProperties注解,在其属性中指定JDBCProperties的字节码

  3. 去掉此类中的四个属性

  4. 使用@Autowired注解注入JDBCProperties类

  5. 在数据源中使用jdbcProperties类实例的getter方法

packagecn.rayfoo.config;

importcom.alibaba.druid.pool.DruidDataSource;
importlombok.Data;
importlombok.ToString;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.beans.factory.annotation.Value;
importorg.springframework.boot.context.properties.EnableConfigurationProperties;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importorg.springframework.context.annotation.PropertySource;

importjavax.sql.DataSource;

/**
* @author 张瑞丰
* @description
* @date 2019/11/4
*/
@Configuration
@EnableConfigurationProperties(JDBCProperties.class)
publicclassJDBCConfig{

   @Autowired
   privateJDBCPropertiesjdbcProperties;

   @Bean
   publicDataSourcedataSource(){
       DruidDataSourcedruidDataSource=newDruidDataSource();
       druidDataSource.setUsername(jdbcProperties.getUsername());
       druidDataSource.setPassword(jdbcProperties.getPassword());
       druidDataSource.setUrl(jdbcProperties.getUrl());
       druidDataSource.setDriverClassName(jdbcProperties.getDriver());
       returndruidDataSource;
  }
}

如果不适用注入的方式还可以将公用类JDBCProperties作为dataSource方法的参数,SpringBoot会自动将bean对象注入该参数

packagecn.rayfoo.config;

importcom.alibaba.druid.pool.DruidDataSource;
importlombok.Data;
importlombok.ToString;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.beans.factory.annotation.Value;
importorg.springframework.boot.context.properties.EnableConfigurationProperties;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importorg.springframework.context.annotation.PropertySource;

importjavax.sql.DataSource;

/**
* @author 张瑞丰
* @description
* @date 2019/11/4
*/
@Configuration
@EnableConfigurationProperties(JDBCProperties.class)
publicclassJDBCConfig{

   @Bean
   publicDataSourcedataSource(JDBCPropertiesjdbcProperties){
       DruidDataSourcedruidDataSource=newDruidDataSource();
       druidDataSource.setUsername(jdbcProperties.getUsername());
       druidDataSource.setPassword(jdbcProperties.getPassword());
       druidDataSource.setUrl(jdbcProperties.getUrl());
       druidDataSource.setDriverClassName(jdbcProperties.getDriver());
       returndruidDataSource;
  }
}

SpringBoot-属性文件properties形式的更多相关文章

  1. Spring的属性文件properties使用注意

    Spring的属性文件properties使用注意 Spring 中属性文件的配置 通常我们会使用properties文件来设置一些属性,如数据库连接信息,避免进行硬编码, <bean clas ...

  2. Spring中属性文件properties的读取与使用

    实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理.例中将需配置的属性信息放在属性文件/WEB-INF/configInfo.propert ...

  3. Spring中使用属性文件properties的两种方式

    实际项目中,通常将可配置的参数放到属性文件中,例如数据库连接信息.redis连接信息等,便于统一管理.然后通过IoC框架spring将其加载到上下文中,使得程序可以直接使用. 创建mysql.prop ...

  4. SpringBoot的配置属性文件*.properties值如何映射到类中使用

    想要在JAVA Bean中读取配置文件中的内容有两种方式,可以进行获取到 第一种方式: 1.在默认的配置文件application.properties 中进行设置 Key-Value键值对 com. ...

  5. Java动态加载属性文件.properties

    当我们使用如下语句加载.properties时: ClassLoader classLoader = this.getClass().getClassLoader(); Properties prop ...

  6. 使用JAVA读写Properties属性文件

     使用JAVA读写Properties属性文件 Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件.它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数 ...

  7. SpringBoot @Value读取properties文件的属性

    SpringBoot在application.properties文件中,可以自定义属性. 在properties文件中如下示: #自定义属性 mail.fromMail.addr=lgr@163.c ...

  8. (七)SpringBoot2.0基础篇- application.properties属性文件的解析及获取

    默认访问的属性文件为application.properties文件,可在启动项目参数中指定spring.config.location的参数: java -jar myproject.jar --s ...

  9. 章节六、3-读取Properties属性文件

    一.如何读取Properties文件1.创建一个名为ReadingProperties的类 2.创建一个.propertise属性的文件,创建的方式参考“二”中步骤 3.写入如下代码 package ...

随机推荐

  1. Spring Boot项目中各配置文件的对比

    application.properties是Spring Boot的全局配置文件,放在src/main/resources目录下或者类路径的/config下,作用是对一些默认配置的配置值进行修改. ...

  2. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)E(多重集维护)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;long long ans[1000007]; ...

  3. httpclient post 请求

    package com.thinkgem.jeesite.common.utils; import org.apache.http.HttpEntity; import org.apache.http ...

  4. C++11并发编程3------线程传参

    /* 基本类型传值 */ #include <iostream> #include <thread> void func(int num) { num = ; std::cou ...

  5. centos7搭建svn服务器及客户端设置

    centos7搭建svn服务器及客户端设置 centos7貌似预装了svn服务(有待确认),因此我们直接启动该服务即可 一.svn服务端配置(服务器IP假设为192.168.100.1) 步骤1:创建 ...

  6. The Google File System中文版

    译者:alex 摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的.可伸缩的分布式文件系统.GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量 ...

  7. 吴裕雄--天生自然python机器学习实战:K-NN算法约会网站好友喜好预测以及手写数字预测分类实验

    实验设备与软件环境 硬件环境:内存ddr3 4G及以上的x86架构主机一部 系统环境:windows 软件环境:Anaconda2(64位),python3.5,jupyter 内核版本:window ...

  8. Kali环境使用Metasploit生成木马入侵安卓手机

    Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报.这些功能包括智能开发,代码审计, ...

  9. Numpy与List之间的转换

    说明:在做NLP的时候,经常需要查看当前数组数据的维度,也就是data.shape,而List是没有这个属性的,因此需要先将其转换成Numpy,以下为两者户想转换的方法 List转Numpy:nump ...

  10. 关于req.params、req.query、req.body等请求对象

    请求对象,通常传递到回调方法,这意味着你可以随意命名,通常命名为 req 或 request . 请求对象中最常用的属性和方法有: req.params 一个数组,包含命名过的路由参数. req.pa ...