首页 > 其他分享 >spring boot 配置文件值注入

spring boot 配置文件值注入

时间:2024-03-30 13:29:50浏览次数:30  
标签:uesr name 配置文件 spring 绑定 boot private import org

        利用配置文件将属性注入到bean程序里面去,下面是各个情况的总结:

        首先我先新建一个bean(beans.User类)来完成演示:

package org.example.springbootdemo.beans;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

//自动生成相关代码,在类里面不用写getter和setter避免代码冗杂
@Data
@Component
@ConfigurationProperties(prefix = "uesr")
public class User {
    private String name;
    private Integer age;
    private Date birthday;
    private List<String> hobbies;
    private Map<String,Integer> Grade;
    private Address address;

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", birthday=" + birthday +
                ", hobbies=" + hobbies +
                ", Grade=" + Grade +
                ", address=" + address +
                '}';
    }
}
package org.example.springbootdemo.beans;

public class Address {
    private int id;
    private String desc;//地址

    @Override
    public String toString() {
        return "Address{" +
                "id=" + id +
                ", desc='" + desc + '\'' +
                '}';
    }
}

在测试文件中:每次测试都运行contextLoads测试类

package org.example.springbootdemo;

import org.example.springbootdemo.beans.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootdemoApplicationTests {

    @Autowired
    private User user;

    @Test
    void contextLoads() {
        System.out.println(user);
    }

}

将YAML映射到属性 

字面量:普通的值(数字,字符串,布尔)

  • k:v:字面直接来写;
  • 字符串默认不用加上单引号或者双引号
  1.  "":双引号:不会转义字符串里面的特殊字符;特殊字符会作为本身想表达的意思:name:"原\n子";输出:原 (换行) 子。
  2. '':单引号:回转义特殊字符,特殊字符最终只是一个普通的字符串数据:name:'yuan\nzi':输出:yuan\nzi。

对象:

         Map(属性和值)(键值对)

k:v:在下一行写出对象的属性和值的关系;注意缩进。

前面是属性后面是值

uesr:
  grade:
    java: 100
    math: 79

行内写法

uesr:
  grade: {java: 100,math: 88}

         数组(List,set)

用-键来表示每一个值

uesr:
  hobbies: 
    - 唱跳
    - rap
    - 篮球

行内写法

uesr:
  hobbies: [唱跳,rap,篮球]

        类中类

与map书写模式相仿         

uesr:
  address: 
    id: 19
    desc: 咸宁

松散绑定:

以下这四种绑定命名是可以自动绑定bean属性:user.name的   (反过来应用也是可以的)    

uesr:
 na_me: 原子 //蛇形绑定
uesr:
 na-me: 原子 //烤串绑定
uesr:
 Name: 原子    //驼峰绑定
uesr:
 NAME: 原子
@Value和@ConfigurationProperties的获取值比较
@ConfigurationProperties@Value
功能批量呼入属性一个个指定
松散绑定支持支持有限
SpEL不支持支持
自动提示支持不支持
JSR303数据校验支持不支持

 

标签:uesr,name,配置文件,spring,绑定,boot,private,import,org
From: https://blog.csdn.net/atomy_iiii/article/details/137168512

相关文章

  • SpringCloud下的微服务应用技术(结尾篇)
    六.Feign远程调用6.1替代RestTemplateRestTemplate调用问题:代码可读性差,参数复杂且URL难维护。Feign是一个声明式的HTTP客户端,官方地址:GitHub-OpenFeign/feign:Feignmakeswritingjavahttpclientseasier它可以解决上述提到的问题。STEP1:首先,在orderservice中引......
  • yii2 配置bootstrap使用
    yii2配置bootstrap使用配置config/web.php添加people<?php...$config=[...'bootstrap'=>['log','people'],...'components'=>['people'=>['class'......
  • Spring 一文彻底搞定循环依赖
    Spring解读循环依赖一.前言Spring是怎么解决循环依赖问题第一级缓存存放的是完全初始化完成的可以直接使用的对象,第二级缓存存放的是经过后置处理器处理(即代理过)的对象,第三级缓存村放的是刚实例化好没有经过后置处理器处理(即没有被代理过)的对象。二.什么是循环依赖......
  • Spring Cloud中从0-1实现高效的API接口,快来简单有效的方式来构建API接口
    目录1.添加POM依赖2.构建目录结构3.构建文件4.实现API接口4.1.MyBatis4.1.1.控制层(Controller)4.1.2.服务接口层(ServiceInterface)4.1.3.服务层(ServiceImplementation)4.1.4.实体类(Entity)4.1.5.数据访问层(Mapper) 4.1.6.JUnit单元测试Controller层测......
  • SpringBoot + Activiti 工作流搭建与实现(附文档+源码)
      前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot+vue+activiti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平台,可插拔工作流服务......
  • 基于Java+Springboot框架自习室教室座位预约系统设计与实现
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • 如何使用spring状态机
    让我们通过一个具体的例子来深入了解Spring状态机的使用。这个例子将模拟一个简单的订单处理流程,其中订单有三个状态:待支付(`NEW`)、已支付(`PAID`)、已完成(`COMPLETED`)。订单状态的转换通过两个事件触发:支付(`PAY`)和完成订单(`COMPLETE`)。步骤1:添加依赖首先,确保你的项目中包含......
  • 【Kingbase8数据库】springboot jpa集成Kingbase8各种报错
    AccesstoDialectResolutionInfocannotbenullwhen‘hibernate.dialect’notset去了stackoverflow:java-SpringBootJPA-AccesstoDialectResolutionInfocannotbenullwhen‘hibernate.dialect’notset-StackOverflow不是PostgreSQL,那就换成mysql的嘛:spr......
  • Springboot+vue的高校科研信息管理系统(有报告)。Javaee项目,springboot vue前后端分离项
    演示视频:Springboot+vue的高校科研信息管理系统(有报告)。Javaee项目,springbootvue前后端分离项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringBoot+Mybatis+Vue+Maven来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系......
  • 基于Springboot的研究生调研管理系统(有报告)。Javaee项目,springboot项目。
    演示视频:基于Springboot的研究生调研管理系统(有报告)。Javaee项目,springboot项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringBoot+Mybatis+Vue+Maven+Layui+Elementui来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系......