赞
踩
天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
通过注解方式读取参数
一种是通过@PropertySource和@ConfigurationProperties
一种是通过@PropertySource和@Value
下面说一些第二种
JDK版本:1.8
maven版本:3.9.0
开发工具:IDEA社区版ideaIC-2018.3
项目框架:spring boot 版本为 2.7.3 springboot搭建传送门
项目包结构
所需依赖
<!--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>
完整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>
application.yml
#Tomcat
server:
port: 8090
servlet:
#访问路径前缀
context-path: /yml
通过对象属性与参数绑定
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; }
@Data
set get方法注解
@Component
组件注解
@PropertySource(“yml.properties”)
文件源注解
@Value
参数绑定注解
yml.properties
yml.name=zhaojun
yml.age=11
yml.sex=female
yml1.name=libai
yml1.age=12
yml1.sex=male
这里的yml就是注解中的prefix参数,将对象属性和文件中的参数联系起来
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"; } }
通过@Autowired注解将对象注入,再直接调用使用
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); } }
启动项目
浏览器访问url
http://localhost:9090/yml/test
浏览器返回结果:
控制台打印结果:
使用@Value注解读取参数请参考:properties文件参数读取@ConfigurationProperties
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。