springboot学习总结(四)外部配置

Springboot允许使用properties文件、yaml文件或者命令行参数作为外部配置

(一)常规属性配置(基于properties、yaml文件)

请求http://localhost:8090/yml-value-test,返回结果如下:

(二)命令行参数配置

当Springboot是基于jar包运行时,可以使用命令行来修改yaml或者properties里面的配置文件

一般按上面的逻辑,请求http://localhost:8090/yml-value-test。返回结果应该是vincent。

不过我们可以通过这样的命令来修改配置的内容

再次请求,返回结果如下:

这种方式特别适用于那种小项目,在各种不同环境下需要修改配置内容的情况。

(三)类型安全的配置(基于properties)

使用@Value注入每个配置在实际项目中会显得格外麻烦,所以,springboot还提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties或者yaml文件中的配置和一个Bean及其属性关联,从而实现类型安全的配置

yaml文件代码:

people:
  name: vincent
  age: 10
PeopleVo类代码:
//@Component在这很重要,不把PeopleVo放入spring管理的生命周期内是无法实现类型安全配置的
@Component
@Data
@ConfigurationProperties(prefix = "people")
public class PeopleVo {

    private String name;

    private Integer age;
}

 controller中测试

    @Autowired
    PeopleVo peopleVo;

    @RequestMapping("/properties-test")
    public String propertiesTest() {
        return peopleVo.toString();
    }

  返回结果:

原文地址:https://www.cnblogs.com/vincentren/p/10713587.html

时间: 2024-10-05 02:17:24

springboot学习总结(四)外部配置的相关文章

使用亚马逊云服务器EC2做深度学习(四)配置好的系统镜像

这是<使用亚马逊云服务器EC2做深度学习>系列的第四篇文章. (一)申请竞价实例  (二)配置Jupyter Notebook服务器  (三)配置TensorFlow  (四)配置好的系统镜像 配置深度学习的环境是一个非常繁琐的过程.它要求你对Linux命令有一定地了解,与此同时各种深度学习库.驱动更新十分频繁,有可能明天教程里的安装脚本就不管用了. AMI AMI就是解决方法.AMI是可以直接在EC2启动的系统镜像,有的系统镜像已经配置好了使用GPU的深度学习环境,这样启动实例后,你就可以直

SpringBoot学习(四)开发web应用

Spring Boot非常适合web应用程序开发.可以使用嵌入式Tomcat.Jetty.Undertow或Netty创建自包含的HTTP服务器.大多数web应用程序使用spring-boot-starter-web模块来快速启动和运行.您还可以选择使用spring-boot-starter-webflux模块来构建反应性web应用程序. 1.Spring Web MVC框架 Spring Web MVC框架(通常简称为“Spring MVC”)是一个丰富的“模型-视图-控制器”Web框架.Sp

springboot学习章节-spring常用配置

1.Scope package com.zhen.highlights_spring4.ch2.scope; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; /** * @author zhen * @Date 2018/6/12 11:38 */ @Service @Scope("prototype") public class De

springboot 学习(一) 配置mybatis ,全局日期处理

试着写一写一系列博客,主要是记录从搭建框架,到集成一些相关的demo,以便以后在项目中用到的时候可以快速拷贝代码. 计划是一步一步的集成一些技术,比如,拦截器的使用,easypoi 的使用demo,Redis 的使用demo ,利用Redis做缓存,限流处理.rabbitmq 的使用demo 文件上传demo ,集成shiro 的demo,一些工具类的收集.等等想到什么写什么 项目结构: MybatisConfigurer @Configuration public class MybatisC

dubbo学习(四)配置dubbo 注解方式配置

provider service注解暴露服务 @Service public class AnnotationServiceImpl implements AnnotationService { @Override public String sayHello(String name) { return "annotation: hello, " + name; } } PS:@Service注解很容易用错,目前有两个包有@Service注解: com.alibaba.dubbo.co

springboot 外部配置&lt;上篇&gt;

SpringBoot允许在外部进行配置,让你在不同的环境中运行相同的代码.你可以通过属性文件.YAML文件.环境变量和命令行来进行外部配置.属性值可以直接通过@Value注入,并可以通过Spring的Environment抽象类 或者 绑定了@ConfigurationProperties的实体类访问. 1.配置随机值. RandomValuePropertySource在注入随机值时候非常有用(例如测试程序.加密程序中),它可以生成int.long.uuids和string等等. my.sec

JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet

JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet 一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet-name>ActionServlet</servlet-name> 3 <servlet-class>me.gacl.web.controller.ActionServlet</s

SpringBoot学习笔记(1):配置Mybatis

SpringBoot学习笔记(1):配置Mybatis 参考资料: 1.AndyLizh的博客 2.xiaolyuh123的博客 快速开始 添加Mybatis依赖(其他依赖已省去) <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId

3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)

1.外部配置加载顺序 SpringBoot也可以从以下位置加载配置: 优先级从高到低 高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置  1.命令行参数 所有的配置都可以在命令行上进行指定 先打包在进行测试 java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc 指定访问的路径 多个配置用空格分开: --配置项=值 -- 由jar包外向jar包