SpringBoot-属性文件properties形式
2024-10-08 14:05:51
SpringBoot-属性文件properties形式
上述使用JavaBean的配置可以实现数据源的配置,但是如果配置文件中的内容需要被多次调用就没那么方便了,所以我们学习新的方法,将Properties文件中的公用属性映射到类中的属性
SpringBoot中使用Java方式配置步骤如下:
创建一个名为application.properties <必须>的文件
将jdbc.properties中的内容放入application.properties 中
创建一个Java类例如JDBCProperties,加入@ConfigurationProperties注解(此注解拥有一个prefix属性,可以指定前缀)
在此类中声明的属性必须和Properties文件中的属性名一致(如果有前缀则为前缀点后的属性名)
此类需要提供getter、setter方法用于注入属性,可以使用lombok
在其他类中就可以直接使用此类中的属性了
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配置的方法,这里我们优化一下其代码
去掉@PropertiesSource注解
新增@EnableConfigurationProperties注解,在其属性中指定JDBCProperties的字节码
去掉此类中的四个属性
使用@Autowired注解注入JDBCProperties类
在数据源中使用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;
}
}
最新文章
- [DUBBO]Dubbo控制台查看方法
- java学习笔记(1)
- SQL_函数
- Saltstack数据系统Grains和Pillar(三)
- Excel数据挖掘插件
- asp.net GDI+绘制折线
- ThinkPHP访问不存在的模块跳到404页面
- Spark installation for windows
- HW6.15
- javascript将form表单中的元素值封装成json格式
- SIEM
- easy_install django==1.4.2_百度搜索
- Android 树形菜单
- Flexslider图片轮播、文字图片相结合滑动切换效果
- leetcode--014 Gas station
- 数据结构-单向链表 C和C++的实现
- 【Tools】ubuntu16.04升级Python2.7到3.5
- OpenMP并行程序设计——for循环并行化详解
- linux----------fedora 27 如何打开ssh,可以远程链接
- Django进阶之CSRF
热门文章
- HTTP协议中常用相应的状态码总结
- 3_03_MSSQL课程_Ado.Net_登录复习和ExcuteScalar
- 学习笔记(11)- 文本生成RNNLG
- 第1节 Scala基础语法:3、环境;4、插件
- webpack配置文件里loader的执行顺序:从下到上,从右到左; css-loader开启css模块化modules: true,
- Go语言的流程控制(条件,选择,控制,跳转,闭包)
- 112、Java中String类之字符串文本拆分为指定的个数
- 3.Sprint 代理对象与原始对象的异常错误
- [Linux] day05——命令行
- Element-UI中关于table表格的样式操作