美文网首页
Spring Boot中使用注解@value详解

Spring Boot中使用注解@value详解

作者: samgroves | 来源:发表于2017-11-11 14:43 被阅读0次

前言:

  1. 使用的是spring boot + mybatis plus 框架
  2. 项目必须可以正常使用
  3. 目的是通过获取到配置文件所配置的属性从而理解@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
  1. 创建一个需要的配置文件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 对应的就是项目使用环境中的值

相关文章

网友评论

      本文标题:Spring Boot中使用注解@value详解

      本文链接:https://www.haomeiwen.com/subject/zfbwmxtx.html