SpringBoot初识(三)——自定义属性

基于51单片机+SYN6288语音播报 51单片机控制SYN6288语音播报资料SYN6288模块原理图语音合成命令接线如何接线实现原理程序代码main.csyn6288.cuart.cdelay.c基于 51单片机的其他项目基于51单片机+遥控灯基于51单片机+LCD1602显示基于51单片机+红外遥控解码+LCD1602显示基于51单片机+DHT11温湿度+LCD1602显示基于51单片机+DS18B20温度测温器+LCD1602显示尾声 资料 我用的是绿深电子技术的模块,资料也挺齐全的。也有相关例程。 SYN6288模块原理图 语音合成 阅读详情

    上一篇我们已经创建了一个最简单的SpringBoot项目,从这一篇开始讲一些我个人在实际项目中运用到的,感觉比较有用的东西。由于是个人的总结,所以个人标书可能没有那么进准,也必然没有官方那么详尽,请大家以SpringBoot官方详尽内容最为最终基准。
    在进行这一篇之前,安利一个软件postman,在开发一些借口请求时候,确实比较好用。官网:https://www.getpostman.com,不过貌似访问比较慢,大家可以百度自行下载。

SpringBoot配置文件

    SpringBoot在我看来最直观的一个优点就是精简了大量的配置文件。大家肯定还记得在以前以SpringMVC来进行一个项目开发的时候,什么web.xml、spring-servlet.xml、mybatis-config.xml等一堆堆的配置文件,搞得真个项目看起来非常复杂,而SpringBoot也考虑到这点,所以在配置文件上尽量的做到精简。
    SpringBoot有properties和yml两种格式的配置文件,你可以选用任意一种格式,单需要注意的是两种配置文件无法混用。下面我们以yml格式的文件来演示配置文件的用途。
    还记得上一篇,我们项目启动成功后,通过访问localhost:8080/chapter_1/hello,获得了相应的返回。接下来我们通过配置文件来改变服务端口来演示配置文件的用法。我们copy一份chapter_1代码,改名为chapter_2,并修改相应的类名,在项目的resources目录下新建application.yml文件,其内容如下:

server:
  port: 8090

然后我们启动项目,此时发现localhost:8080/chapter_2/hello已经无法访问,如下图
这里写图片描述
而localhost:8090chapter_2/hello则可以访问,如下图
这里写图片描述
证明我们的配置文件内容生效。

SpringBoot自定义属性

    可能有人会问,那如果我想自己定义一个属性内容,在程序中要怎么获取其内容呢。SpringBoot对于自定义属性,有3种方式可以很方便的在程序中获取并使用。

@Value注解方式获取

SpringBoot可以通过@Value注解的方式获取自定义属性。如下,我们在application.yml文件中自定义属性my.name:

server:
  port: 8090
my:
  name: willem

然后在代码中通过如下方式获取:

@SpringBootApplication
@RestController
public class BootStrapApplication {
    @Value("${my.name}")
    private String name;

    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String hello(){
        return "hello,my name is"+name;
    }

    public static void main(String[] args) {
        SpringApplication.run(BootStrapApplication.class,args);
    }
}

然后启动服务,在postman中访问该接口,返回内容如下:
这里写图片描述
从返回结果可以看到,我们在属性文件中自定义的值已经引用到程序中。

属性实体类

我们还可以通过@ConfigurationProperties注解将属性值注入实体类中使用。我们新建MyProperties实体类,代码如下:

@Component
@ConfigurationProperties(prefix = "my")
public class MyProperties {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

其中@ConfigurationProperties中的prefix是告诉SpringBoot这个实体属性是以“my”开头的。
我们在Chapter2Controller新加一个hello2的方法,代码如下

@RestController
@RequestMapping(value = "/chapter_2")
public class Chapter2Controller {
    @Value("${my.name}")
    private String name;

    @Autowired
    private MyProperties myProperties;

    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String hello(){
        return "hello,my name is "+name;
    }

    @RequestMapping(value = "/hello2",method = RequestMethod.GET)
    public String hello2(){
        return "hello,my name is "+myProperties.getName();
    }

}

然后访问该接口,得到的结果如下:
这里写图片描述
成功取到我们自定义的属性。

Environment变量获取

SpringBoot给我们提供了一个Environment对象,可以通过该对象访问属性文件里的内容,所以当然也可以通过Environment来获取我们自定义的属性。我们改动Chapter2Controller代码,如下

@RestController
@RequestMapping(value = "/chapter_2")
public class Chapter2Controller {
    @Value("${my.name}")
    private String name;

    @Autowired
    private MyProperties myProperties;

    @Autowired
    private Environment environment;

    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String hello(){
        return "hello,my name is "+name;
    }

    @RequestMapping(value = "/hello2",method = RequestMethod.GET)
    public String hello2(){
        return "hello2,my name is "+myProperties.getName();
    }

    @RequestMapping(value = "/hello3",method = RequestMethod.GET)
    public String hello3(){
        return "hello3,my name is"+environment.getProperty("my.name");
    }
}

我们在代码中新加hello3方法,重启程序后访问该方法,得到如下返回
这里写图片描述
我们可以看到,通过以上三种方式,均可以在代码中获取自定义的属性。在SpringBoot中可以很方便的获取系统属性及自定义的属性,如果再结合Maven,可以大大提高项目的开发速度。下一篇,我们将结合Maven来构建多环境的配置。
最后,按照惯例,附上项目目录结构:
这里写图片描述
项目地址:https://github.com/Willem520/spring-boot-learning.git,源码位于chapter_2文件夹下。

【Spring Boot】Spring Boot的系统配置 — 自定义配置项 在上面的示例中,创建了自定义的website.properties配置文件。增加了name、website、language等个配置项,这些配置项的名称的前缀都是com.lxmb.resource。 阅读详情

相关推荐

【Ellisys】【使用技巧】【二】

支持所有常见的编码器和协议实时播放或保存(无线和HCI)循环播放导出与其他视图协同(OverView 和 Spectrum)可以通过下面的位置看 重传的包。

奔跑吧 android 的博客 115

SpringBoot自定义配置属性

本文介绍了如何自定义配置属性,如何配置 Idea 在使用Kotlin的情况下能够识别配置的属性,以及属性参数是列表,属性继承的处理方法。

PeterGamp的博客 2078

浅谈Spring Boot 属性配置和自定义属性配置

主要介绍了浅谈Spring Boot 属性配置和自定义属性配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Spring Boot 属性配置文件

转载自: https://blog.csdn.net/qq_21387171/article/details/53876721 https://blog.csdn.net/catoop/article/details/50548009 http://blog.didispace.com/springbootproperties/ 自定义属性与加载   在application.pro...

ZERO 805

Spring Boot 自定义属性配置

Spring Boot自定义配置 - Spring Boot In Action1. 覆盖Spring Boot自动配置2. 通过属性文件外置配置 1. 覆盖Spring Boot自动配置 想要覆盖Spring Boot的自动配置,你所要做的仅仅是编写一个显式的配置。SpringBoot会发现你的配置,随后降低自动配置的优先级,以你的配置为准。 Spring Boot的设计是加载应用级配置,...

ttyy1112的专栏 950

SpringBootSpringBoot强大的自定义属性配置

@Value和@ConfigurationProperties在自定义属性的使用。

永远保持随时离开的技术能力! 2701

SpringBoot):SpringBoot 属性配置文件详解

SpringBoot 配置文件默认为application.properties,但是本章节主要讲解yaml文件配置,因为现在的趋势是使用yaml,它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。 一、自定义属性与加载 我们把之前项目中的配置文件application.properties改成application.yml test: user:

Saytime 7457

springboot 使用yml配置文件自定义属性

springboot 中在application.yml文件里自定义属性值,配合@Value注解可以在代码中直接取到相应的值,如在application.yml中添加 mqtt: serverURI: tcp://192.168.125.250:1939 topic:  在代码中可以用 @Value("${mqtt.topic}") private String topic ;

yuanwanchao的博客 2万+

springboot yml自定义属性

springboot yml自定义属性 1. 字符串 写法: # 自定义参数 custom: value: 张 value1: "张" 获取方式1: 使用@Value配合spel表达式进行赋值 @Value("${custom.value}") private String value; @Value("${custom.value1}") private String valu...

qq_34708197的博客 5414

springboot shrio自定义cookie属性

springboot shrio自定义cookie属性 /** * 配置保存sessionId的cookie * 注意:这里的cookie 不是上面的记住我 cookie * 记住我需要一个cookie session管理 也需要自己的cookie * @return */ @Bean("sessionIdCookie") pu...

u014752221的博客 3469

SpringBoot获取自定义注解属性-类-方法

SpringBoot获取自定义注解属性-类-方法 写了个自定义注解,想获取自定义注解的属性,或者标在方法上的注解上的属性 获取自定义注解在类上的属性值 //获取自定义注解的配置的所有bean final Map<String, Object> beansWithAnnotation = applicationContext.getBeansWithAnnotation(...

昆仔的博客 1万+

springboot自定义属性文件与bean映射注入属性

springboot自定义属性文件与bean映射注入属性值 主要有几点: 一、导入依赖 springboot的包和: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-c...

zuixiaoyao_001的博客 1409

SpringBoot 自定义属性源EnvironmentPostProcessor和PropertySourceLoader

SpringBoot 版本2.1.4.RELEASE 由于SpringCloud 配置中心自定义存储方式中提到PropertySourceLoader,故再学习一下自定义属性自定义属性源有两种比较简单的方式: 1、实现EnvironmentPostProcessor接口 2、实现PropertySourceLoader接口 然后在META-INF/spring.factories添加相应配...

qq_25863973的博客 2228

Spring Boot 2.7.0 自定义配置属性()

你是否在项目中遇到过磁盘路径、服务器的ip地址、秘钥字符串等属性写在代码中。当项目部署在服务器上发现路径需要修改,ip需要修改,秘钥更改,这时我们只能先修改好代码,然后在重新打包后发布。那么,为什么不把他们这类常量写在配置文件中呢。这样部署在服务器上后,我们仅需要告知运维人员如何修改配置文件即可。免去发布版本的问题,也可以将开发环境、生产环境、测试环境中的相关配置有效分开。在spring boot 中,我们通过读取application.properties中的属性来初始化项目。例如项目名称,端口号,数据库

qq_36378416的博客 1789

SpringBoot-狂神(3. yaml配置注入)学习笔记

文章目录1. yaml语法1. 配置文件2. yaml概述3. yaml基础语法1. 说明:语法要求严格2. 字面量:普通的值 [ 数字,布尔值,字符串 ]3. 注意4. 对象、Map(键值对)5. 数组( List、set )6. 修改SpringBoot的默认端口号2. 注入配置文件1. yaml注入配置文件2. 加载指定的配置文件3. 配置文件占位符4. 回顾properties配置5. 对比小结3. 结论 1. yaml语法 1. 配置文件 SpringBoot使用一个全局的配置文件 , 配置

圆的博客 970

SpringBoot自定义属性

有时候,我们需求在application.yml获得application.properties自定义属性。如何实现呢? 配置步骤 第一步:在pom.xml导入包或者开发工具选择该依赖包 <!--支持自定义属性--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</

weixin_43472934的博客 389

SpringBoot()自定义属性获取

Spring Boot系列 SpringBoot():Quick start SpringBoot():多环境切换 SpringBoot():Respond封装 SpringBoot():统一异常处理 目录 一.全局配置文件配置属性 二.获取单一属性 .映射Bean属性 四.测试...

yjgithub的博客 3949

08 SpringBoot 自定定义配置

SpringBoot自定义配置有种方式:使用@PropertySource进行自定义配置使用@ImportResource进行自定义配置使用@Configuration进行自定义配置。

zhr2376494700的博客 1281

说说在 Spring Boot 中如何自定义与使用属性

Spring Boot 应用本身的属性值(比如每页记录数),一般做成自定义的应用属性,放置在 application.yml 中。 (1)配置自定义属性 在 application.yml 中,自定义一个名为 pageSize 的属性,用于存放 整个应用的 “每页记录数” 参数。 app: data: pageSize: 30 上面的这些配置都是自定义的,而且支持任意嵌套。 (2)控制器层 配置好自定义属性之后,就可以直接在业务的控制器层 Controller 使用这些属性。 @Configu

读万卷书,行万里路 545

使用SpringBoot配置信息修改服务器配置

SpringBoot还提供了将配置文件中的数据封装到我们自定义实体类对象中的方式。具体操作如下将实体类bean的创建交给Spring管理。在类上添加@Component注解使用注解表示加载配置文件在该注解中也可以使用prefix属性指定只加载指定前缀的数据在中进行注入Enterprise}}";}}使用第种方式,在实体类上有如下警告提示这个警告提示解决是在pom.xml中添加如下依赖即可...

黑马程序员官方博客 2874

大金蓝牙检测仪软件1.1.20.apk

大金蓝牙检测仪软件1.1.20.apk

上一篇: SpringBoot初识(二)——代码约定
下一篇: SpringBoot初识(四)——Maven多环境配置
丨煜
博客等级 码龄12年 0粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值