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获取配置文件的三种方式相关推荐

  1. android获取自定义属性,android 自定义控件中获取属性的三种方式(转)

    第一种方法,直接设置属性值,通过attrs.getAttributeResourceValue拿到这个属性值. (1)在xml文件中设置属性值 android:layout_width="f ...

  2. Spring Boot当中获取request的三种方式

    本篇博客主要记录request相关知识,也是开发当中经常遇到的,感兴趣的跟小编一起学习吧! 目录 一.请求过程 二.获取request的三种方式 2.1.可以封装为静态方法 2.2.controlle ...

  3. 【Java获取配置文件的2种方式】

    获取Java配置文件信息的2种方法 第一种方式 第二种方式 切记第二种方式路径文件不带后缀!!! 区别 第一种方式 Properties properties = new Properties();I ...

  4. SpringBoot静态获取 bean的三种方式,你学会了吗?

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/showchi/article/details/97005720 注意:调用者要被spring管理 ...

  5. java时间戳是什么类型_java 获取时间戳的三种方式

    java 获取时间戳的三种方式 CreationTime--2018年7月13日16点29分 Author:Marydon 1.实现方式 方式一:推荐使用 System.currentTimeMill ...

  6. java获取时间戳的三种方式比较

    文章目录 java获取时间戳的三种方式比较 java获取时间戳的三种方式比较 import java.util.Calendar; import java.util.Date; //不再推荐使用Dat ...

  7. php fs 上传文件,PHP操作GridFS存储文件到MongoDB的三种方式

    一般情况采取第一种方法,直接传文件,第二种方法适合生成的数据不用保存到本地再上传而是直接以二进制存到MongoDB,第三种方式是直接把表单上传的文件存进MongoDB. //初始化gridfs $co ...

  8. java 时间戳 对比_Java中获取时间戳的三种方式对比实现

    Java中获取时间戳 三种方式对比 最近项目开发过程中发现了项目中获取时间戳的业务.而获取时间戳有以下三种方式,首先先声明推荐使用System类来获取时间戳,下面一起看一看三种方式. 1.System ...

  9. C#获取网页内容的三种方式

    搜索网络,发现C#通常有三种方法获取网页内容,使用WebClient.WebBrowser或者HttpWebRequest/HttpWebResponse...方法一:使用WebClient (引用自 ...

最新文章

  1. Java程序员新手老手都离不开八大开发工具
  2. 大创idea2018-03-30
  3. mvp的全称_是让人提神醒脑的 MVP、MVVM 关系精讲!
  4. Java并发编程-ConcurrentHashMap
  5. HBase超级详细总结
  6. 制作linux u盘启动,制作Linux的U盘启动盘
  7. 3D游戏引擎的Web化
  8. 我被List中remove()方法的陷阱,坑惨了!
  9. vmware mac安装教程 | 不能全屏的终极原因
  10. Docker架构简介 命令详解
  11. (送票)2020广州敏捷之旅暨第11届广州DevOps社区Meetup火热报名中!
  12. 【idea】idea使用
  13. 学习OpenCV的学习笔记系列(三)显示图片及视频
  14. 2019 快手校招笔试题详解
  15. 小程序 小程序列表模板
  16. 宏基计算机设置硬盘启动不了,宏基笔记本设置U盘启动的简单步骤
  17. python字符串剔除空格和逗号_用逗号分隔并在Python中删除空格
  18. 大掌门手游外挂(大掌门代练助手)
  19. 上线11年公众号广告大变天!最新政策解读|西瓜数据
  20. macbook m1安装pycharm

热门文章

  1. winxp不加载oracle服务器,WinXP系统开机提示“windwos不能加载用户的配置文件”怎么办...
  2. java tomcat原理图,浅谈tomcat工作原理
  3. 4 angular 重构 项目_c# – 将Angular 4添加到ASP.NETCore项目中
  4. activiti如何最后一次提交事务_2020最后一次水逆,十二星座如何防水逆?
  5. c语言中规定,程序中各函数之间,C语言题库-函数_(参考).doc
  6. ekf pose使用方法 ros_robot_pose_ekf 使用说明
  7. Qt中的ui文件是c语言文件吗,c-Qt-UI文件未在Visual Studio中更新
  8. c mysql 设置字符集_MYSQL字符集设置的方法详解(终端的字符集)
  9. exsist什么意思_exists是什么意思_exists的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. 深度学习之循环神经网络(4)RNN层使用方法