前言:
- 使用的是spring boot + mybatis plus 框架
- 项目必须可以正常使用
- 目的是通过获取到配置文件所配置的属性从而理解@value的使用
一、controller类
package com.mybatis.api.controller;
import com.mybatis.repository.propertiesEntity.DatasourceDev;
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: 测试 @value 的使用
* <p>
* Date: 2017/11/11
*/
@Controller
@RequestMapping(value = "/value")
public class ValueTest {
@Autowired
private DatasourceDev datasourceDev;
@RequestMapping(value = "/test")
@ResponseBody
public Map<String, Object> test() {
Map<String, Object> map = new HashMap<>();
map.put("url", datasourceDev.getUrl());
map.put("userName", datasourceDev.getUserName());
map.put("password", datasourceDev.getPassword());
map.put("className", datasourceDev.getClassName());
map.put("type", datasourceDev.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.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* Author: SamGroves
* <p>
* Description: 获得配置文件datasource-dev.properties的若干属性值
* <p>
* Date: 2017/11/11
*/
@Component
public class DatasourceDev {
// 对应配置文件中的配置(观察)
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String userName;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.driver-class-name}")
private String className;
@Value("${spring.datasource.type}")
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 getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
总结:
1. 通过 @value 将 配置文件中的信息对应的赋值给需要的属性
2. 项目中由多个模块,@value 将会自动去寻找所有的配置文件
中对应的信息
3. 如果项目中两个配置文件都含有 @values 所对应的值,比如
datasource-dev.properties(开发环境使用)
datasource-pro.properties(线上环境使用)
这时候 @value 对应的就是项目使用环境中的值











网友评论