最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何獲取yml里面的屬性值

 更新時間:2022年02月16日 08:51:25   作者:別浪呀  
這篇文章主要介紹了springboot如何獲取yml里面的屬性值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

如何獲取yml里面的屬性值

開發(fā)環(huán)境

  • idea
  • jdk1.8

項目結構

pom依賴

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.springboot</groupId>
    <artifactId>springboot_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo</name>
    <description>Demo project for Spring Boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--導入配置文件處理器,配置文件綁定數據會有數據-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build> 
</project>

springboot啟動類

package com.springboot.springboot_demo; 
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.io.ClassPathResource;
 
@SpringBootApplication
public class SpringbootDemoApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }
    /**
     * 設置自定義yml位置
     *
     * @return
     */
    @Bean
    public static PropertySourcesPlaceholderConfigurer properties() {
        PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
        YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
        yaml.setResources(
                new ClassPathResource[] {
                        /** 請求url地址 */
                        new ClassPathResource("config/person.yml")
                });
        pspc.setProperties(yaml.getObject());
        return pspc;
    }
}

person.yml

person:
  lastName: zhangsan
  age: 18
  boss: false
  birth: 2017/12/12
  maps: {k1: v1,k2: v2}
  lists:
    - lisi
    - zhaoliu
  dog:
    name: 小狗
    age: 2

person.java

package com.springboot.springboot_demo.pojo; 
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;
 
/**
 * 將配置文件中配置的每一個屬性的值映射到person
 * @ConfigurationProperties 告訴springboot 將本類中的值與配置文件中的值綁定
 * prefix = "person" 配置文件下的那個屬性下的
 * 只有這個組件是容器中的組件才能使用@Component
 */
@Data
@Component
@ConfigurationProperties(prefix = "person")
public class Person { 
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog; 
}

Dog.java

package com.springboot.springboot_demo.pojo; 
import lombok.Data; 
@Data
public class Dog {
    private String name;
    private String age;
 
}

SpringbootDemoApplicationTests

package com.springboot.springboot_demo; 
import com.springboot.springboot_demo.pojo.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
 
/**
 * springboot單元測試
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootDemoApplicationTests { 
    @Autowired
    private Person person;
    @Value("${person.lastName}")
    private String username;
    @Test
    public void contextLoads() {
        System.out.println(person);
    }
    @Test
    public void personCopy() {
        System.out.println(username);
    } 
}

控制臺輸出

Person(lastName=zhangsan, age=18, boss=false, birth=Tue Dec 12 00:00:00 CST 2017, maps={k1=v1, k2=v2}, lists=[lisi, zhaoliu], dog=Dog(name=小狗, age=2))

zhangsan

獲取.yml中自定義參數

需求:根據不同環(huán)境獲取到不同的參數,放在.yml中方便修改!

在開發(fā)環(huán)境中,回調的url地址

在測試環(huán)境中,回調的url地址

在生產環(huán)境中,回調的url地址

我是通過2種方式來實現(xiàn)的

通過@Value獲取

代碼如下

package com.heque.service.pay;
import org.springframework.beans.factory.annotation.Value;
public abstract class ObtainNotifyUrl {
?? ?@Value("${weixinAndAli.wechatNotifyUrl}")
?? ?private String wechatNotifyUrl;
?? ?@Value("${weixinAndAli.aliNotifyUrl}")
?? ?private String aliNotifyUrl;
?? ?public String getWechatNotifyUrl() {
?? ??? ?return wechatNotifyUrl;
?? ?}
?? ?public void setWechatNotifyUrl(String wechatNotifyUrl) {
?? ??? ?this.wechatNotifyUrl = wechatNotifyUrl;
?? ?}
?? ?public String getAliNotifyUrl() {
?? ??? ?return aliNotifyUrl;
?? ?}
?? ?public void setAliNotifyUrl(String aliNotifyUrl) {
?? ??? ?this.aliNotifyUrl = aliNotifyUrl;
?? ?}
}
package com.heque.service.pay;
import org.springframework.stereotype.Component;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
@Component
public class Test extends ObtainNotifyUrl{?? ?
}

通過springframework自動包可以完成此功能,需要注意Test繼承對象需要加入@component,把對象交給springContainer去管理,我們需要的時候只需注入資源就好了。

@Autowired?private Test test;?test.getAliNotifyUrl();/test.getWechatNotifyUrl();

通過@ConfigurationProperties(prefix = "weixinAndAli")注解

代碼如下

package com.heque.service.pay;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
?* @author: TimBrian
?* @date: Sep 10, 2018 9:13:40 AM ? ? ?
?*/
@Component
@ConfigurationProperties(prefix = "weixinAndAli")
public class ConfigUtils {?? ?
?? ?private String wechatNotifyUrl;?? ?
?? ?private String aliNotifyUrl;?? ?
?? ?public String getWechatNotifyUrl() {
?? ??? ?return this.wechatNotifyUrl;
?? ?}
?? ?public void setWechatNotifyUrl(String wechatNotifyUrl) {
?? ??? ?this.wechatNotifyUrl = wechatNotifyUrl;
?? ?}
?? ?public String getAliNotifyUrl() {
?? ??? ?return aliNotifyUrl;
?? ?}
?? ?public void setAliNotifyUrl(String aliNotifyUrl) {
?? ??? ?this.aliNotifyUrl = aliNotifyUrl;
?? ?}
}

調用和方法一一樣的

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java正則判斷日期格式是否正確的方法示例

    Java正則判斷日期格式是否正確的方法示例

    這篇文章主要介紹了Java正則判斷日期格式是否正確的方法,結合實例形式分析了Java針對日期字符串正則判斷的相關操作技巧,需要的朋友可以參考下
    2017-03-03
  • 解決SpringBoot返回結果如果為null或空值不顯示處理問題

    解決SpringBoot返回結果如果為null或空值不顯示處理問題

    這篇文章主要介紹了解決SpringBoot返回結果如果為null或空值不顯示處理問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 一文了解mybatis的延遲加載

    一文了解mybatis的延遲加載

    本文主要為大家詳細介紹下mybatis的延遲加載,從原理上介紹下怎么使用、有什么好處能規(guī)避什么問題。感興趣的小伙伴可以跟隨小編一起學習一下
    2022-07-07
  • Java8新日期時間API的20個使用示例

    Java8新日期時間API的20個使用示例

    這篇文章主要介紹了Java8新日期時間API的20個使用示例,為了學習Java 8的這個新庫,這里我創(chuàng)建了20個以任務為導向的例子,需要的朋友可以參考下
    2015-03-03
  • JVM Metaspace內存溢出問題解決方案

    JVM Metaspace內存溢出問題解決方案

    這篇文章主要介紹了JVM Metaspace內存溢出排查總結過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • jdbc實現(xiàn)連接和增刪改查功能

    jdbc實現(xiàn)連接和增刪改查功能

    這篇文章主要為大家詳細介紹了jdbc實現(xiàn)連接和基本的增刪改查功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • java 抓取網頁內容實現(xiàn)代碼

    java 抓取網頁內容實現(xiàn)代碼

    這篇文章主要介紹了java 抓取網頁內容實現(xiàn)代碼,需要的朋友可以參考下
    2014-02-02
  • SpringBoot項目啟動時提示程序包不存在和找不到符號的處理方法

    SpringBoot項目啟動時提示程序包不存在和找不到符號的處理方法

    最近接手同事開發(fā)的一個Springboot工作項目,從svn上整體拉取下來后,構建完成后,啟動的時候遇到了程序包找不到的情況,所以本文記錄了SpringBoot項目啟動時提示程序包不存在和找不到符號的處理方法,需要的朋友可以參考下
    2024-05-05
  • 關于spring?boot使用?jdbc+mysql?連接的問題

    關于spring?boot使用?jdbc+mysql?連接的問題

    這篇文章主要介紹了spring?boot使用?jdbc+mysql?連接,在這里mysql?8.x版本驅動包,要使用?com.mysql.cj.jdbc.Driver作為驅動類,文中給大家詳細介紹,需要的朋友可以參考下
    2022-03-03
  • Java?ServletContext與ServletConfig接口使用教程

    Java?ServletContext與ServletConfig接口使用教程

    ServletConfig對象,叫Servlet配置對象。主要用于加載配置文件的初始化參數。我們知道一個Web應用里面可以有多個servlet,如果現(xiàn)在有一份數據需要傳給所有的servlet使用,那么我們就可以使用ServletContext對象了
    2022-09-09

最新評論

永安市| 石门县| 兴安盟| 衢州市| 泸州市| 汤阴县| 加查县| 盐边县| 金乡县| 顺义区| 阜阳市| 始兴县| 双鸭山市| 廉江市| 桐庐县| 满城县| 葫芦岛市| 杂多县| 会泽县| 吴川市| 柳河县| 景泰县| 揭西县| 绍兴市| 揭东县| 朝阳区| 凤山市| 保靖县| 滦南县| 横峰县| 蒲江县| 岢岚县| 朝阳市| 大连市| 红安县| 秦安县| 琼海市| 和顺县| 奉贤区| 新兴县| 安泽县|