前言:
- 使用的是spring boot + mybatis plus 框架
- 项目必须可以正常使用
- 通过获取到配置文件所配置的属性从而理解该注解的使用
一、controller类
package com.mybatis.api.controller.configurationProperties;
import com.mybatis.repository.propertiesEntity.DatasourcePro;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
/**
* Author: SamGroves
* <p>
* Description: 通过 @ConfigurationProperties 来获取配置文件的信息
* <p>
* Date: 2017/11/11
*/
@Controller
@RequestMapping(value = "/config")
public class ConfigurationPropertiesController {
@Autowired
private DatasourcePro datasourcePro;
@RequestMapping("/test")
@ResponseBody
public Map<String, Object> test(){
Map<String, Object> map = new HashMap<>();
map.put("url", datasourcePro.getUrl());
map.put("userName", datasourcePro.getUsername());
map.put("password", datasourcePro.getPassword());
map.put("className", datasourcePro.getDriverClassName());
map.put("type", datasourcePro.getType());
return map;
}
}
二、配置文件datasource-dev.properties
# mysql配置
spring.datasource.url=jdbc:mysql://127.0.0.1:8888/test?useUnicode=false&autoReconnect=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# mybatis_config
# mybatis.mapper-locations 的路径是Mapper.xml文建所在路径
# mybatis.typeAliasesPackage 的包为entity所在类
mybatis.mapper-locations=classpath:com/mybatis/repository/mapper/impl/*Mapper.xml
mybatis.typeAliasesPackage=com.mybatis.repository.entity
- 创建一个需要的配置文件POJO类 DatasourceDev.java
package com.mybatis.repository.propertiesEntity;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* Author: SamGroves
* <p>
* Description: 通过 @ConfigurationProperties 来获取配置文件的信息
* <p>
* Date: 2017/11/11
*/
@ConfigurationProperties(prefix = "spring.datasource")
@Component
public class DatasourcePro {
private String url;
private String username;
private String password;
// 配置文件中是driver-class-name, 转驼峰命名便可以绑定成
private String driverClassName;
private String type;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
总结:
1. @ConfigurationProperties 和 @value 有着相同的功能
但是 @ConfigurationProperties 的写法更为方便
2. @ConfigurationProperties 的 POJO类的命名比较严格,
因为它必须和prefix的后缀名要一致, 不然值会绑定不上,
特殊的后缀名是“driver-class-name”这种带横杠的情况,
在POJO里面的命名规则是下划线转驼峰就可以绑定成功,所以
就是 “driverClassName”










网友评论