日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

idea yml文件不变成树叶_springboot获取配置文件的三种方式

發布時間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 idea yml文件不变成树叶_springboot获取配置文件的三种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hello,大家好,有今天沒有寫文章了,因為呢,最近,公司有點事情,需要我呢,搭建一個demo,框架呢是springboot+Active實現消息的延時發送和定時發送功能,為了項目以后中使用到,所以呢,看springboot+ActiveMq 能不能實現這個場景,接下來呢,我說一下我搭好框架之后,遇到的一個問題吧。

如何獲取application.yml文件數據,或者application.properties文件值

我的是application.yml

activemq:

brokerUrl: tcp://127.0.0.1:61616

user: admin

password: admin

#in-memory: true #是否啟用內存模式(也就是不安裝MQ,項目啟動時同時也啟動一個MQ實例)

# 等待消息發送響應的時間。設置為0等待永遠。 send-timeout

timeout: 0

# 隊列名稱

queueName: springbootActiveMqTest

topicName: publishTopic

# 是否在回滾回滾消息之前停止消息傳遞。這意味著當啟用此命令時,消息順序不會被保留。

non-blocking-redelivery: false

pool:

enabled: true

max-connections: 10

第一種方式:

1.定義一個實體類,然后掃描到

@Component

@ConfigurationProperties(prefix = "activemq")

public class MyProps {

//用戶名

private String user;

//密碼

private String password;

//鏈接地址

private String brokerUrl;

// 超時時間

private String timeout;

// 隊列名稱

private String queueName;

然后實現set ,get 方法。

測試類:2

@RunWith(SpringRunner.class)

@SpringBootTest(classes = AdminApplication.class)

public class TestActiveMq {

//第一種方式獲取

@Autowired

private MyProps myProps;

//第二種方式獲取

@Value("${user.userName}")

private String userName;

@Test

public void test_send() {

logger.info("發送開始測試-------------------------------------------------------");

logger.info("用戶名3------------------------------"+myProps.getUser());

}

}

@Test

public void test_send() {

logger.info("發送開始測試-------------------------------------------------------");

logger.info("用戶名2------------------------------"+userName);

}

結果也沒獲取到,你們相信嗎,這居然被我遇到了,因為這種幾種方式獲取呢,以前寫過,也沒出現過這種問題,我靠,腦袋有點懵了

于是第三種方式來了

YamlPropertiesFactoryBean yamlMapFactoryBean = new YamlPropertiesFactoryBean();

//可以加載多個yml文件

yamlMapFactoryBean.setResources(new ClassPathResource("application.yml"));

Properties properties = yamlMapFactoryBean.getObject();

userCommon.setUser(properties.getProperty("activemq.user"));

userCommon.setPassword(properties.getProperty("activemq.password"));

retrun userCommon;

我靠,居然獲取到了,你說氣人不,

// 測試類pom.xml 配置

junit

junit

4.12

// 掃描文件配置

org.springframework.boot

spring-boot-configuration-processor

true

// test 配置

org.springframework.boot

spring-boot-starter-test

test

還有更奇葩的是;

在測試類上面的這個掃描

@RunWith(SpringRunner.class)

@SpringBootTest(classes = AdminApplication.class)

死活沒法引用,查了很多方法,雖然也有同志遇到過這個問題,但答案很多,idea 始終無法引用

換成eclipse 引入這個項目,然后,隨便敲一下,就可以引入了,我靠,然后在idea 這邊居然還是報紅,我靠, 我沒救了,

最后,寫了個main 方法實現這個Active MQ 調用生產者發送消息吧,然后消費者也是這樣的main 方法消費的,好吧,至少實現了這個 Active mq 消息延時發放和定時發送的功能了 ,

先這樣吧,今天有點無語了,

特別是這個引入的問題,大家覺得,這個簡單的問題,會是哪個細節出了問題呢。歡迎大家留言,討論,謝謝。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的idea yml文件不变成树叶_springboot获取配置文件的三种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。