当前位置:   article > 正文

properties文件参数读取(@Value)_value读取properties文件内容

value读取properties文件内容

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


通过注解读取参数

通过注解方式读取参数
一种是通过@PropertySource和@ConfigurationProperties
一种是通过@PropertySource和@Value
下面说一些第二种


1.开发环境

JDK版本:1.8
maven版本:3.9.0
开发工具:IDEA社区版ideaIC-2018.3
项目框架:spring boot 版本为 2.7.3 springboot搭建传送门

项目包结构
在这里插入图片描述

2.引入依赖

所需依赖

        <!--SpringBoot启动依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
<!--            <version>3.0.4</version>-->
        </dependency>

        <!--免生成set get方法-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3.完整依赖

完整pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.yml</groupId>
    <artifactId>yml_demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--SpringBoot父类标签管理依赖版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.3</version>
    </parent>

    <dependencies>
        <!--SpringBoot启动依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
<!--            <version>3.0.4</version>-->
        </dependency>

        <!--免生成set get方法-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>

    </dependencies>

</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

4.配置文件

application.yml

#Tomcat
server:
  port: 8090
  servlet:
    #访问路径前缀
    context-path: /yml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5.对象实体类

通过对象属性与参数绑定
YmlReadInfo.java

package com.yml_demo.entity;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @ClassDescription:
 * @Author:李白
 * @Date:2023/3/28 15:14
 */
@Data
@Component
@PropertySource("yml.properties")
//@ConfigurationProperties(prefix = "yml")
public class YmlReadInfo {
    @Value("${yml.name}")
    private String name;
    @Value("${yml.sex}")
    private String sex;
    @Value("${yml.age}")
    private int age;
//    private String address;
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

@Data
set get方法注解
@Component
组件注解
@PropertySource(“yml.properties”)
文件源注解
@Value
参数绑定注解

6.properties文件

yml.properties

yml.name=zhaojun
yml.age=11
yml.sex=female
yml1.name=libai
yml1.age=12
yml1.sex=male

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这里的yml就是注解中的prefix参数,将对象属性和文件中的参数联系起来

7.请求控制类

TestController.java

package com.yml_demo.controller;

import com.yml_demo.entity.YmlReadInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassDescription:
 * @Author:李白
 * @Date:2023/3/28 14:57
 */
@RestController
public class TestController {

    @Autowired
    YmlReadInfo ymlInfo;

    @RequestMapping("test")
    public String test(){

        System.out.println(ymlInfo);

        return "ssss";
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

通过@Autowired注解将对象注入,再直接调用使用

8.项目启动类

YmlApp.java

package com.yml_demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @ClassDescription:
 * @Author:李白
 * @Date:2023/3/28 14:49
 */
@SpringBootApplication
public class YmlApp {
    public static void main(String[] args) {
        SpringApplication.run(YmlApp.class, args);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

10.请求调用测试结果

启动项目
浏览器访问url
http://localhost:9090/yml/test

浏览器返回结果:
在这里插入图片描述

控制台打印结果:
在这里插入图片描述


使用@Value注解读取参数请参考:properties文件参数读取@ConfigurationProperties

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号