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获取配置文件的三种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python括号的区别_Python中类
- 下一篇: “2022中国十大科技创新奖”揭晓 六大