文档章节

记录:使用IDEA编辑Spring配置文件profile属性时产生的命名重复问题

secondriver
 secondriver
发布于 2015/09/17 09:24
字数 477
阅读 26
收藏 0

  写在前面:

  该问题仅仅与IDE相关,不影响应用的正常运行。在Spring Tool Suite中不存在该问题,而IDEA中会体现出来。

 

  在使用IDEA创建了一个Spring的配置文件,其中指定了profile属性,在不同的profile下有同名Bean其报命名重复(下图红色部分)。

  

 wKiom1V9b3mT0iySAADpEaVV-WE918.jpg


  使用程序测试,发现是正常了,于是判断是IDEA做了一些手脚。


  这个问题产生的原因是该Spring的配置是自己直接从外部Copy或者创建一个xml文件编辑的,并没有添加了项目模块的Spring Application Context设置中去,因此IDEA给出了命名冲突的提示,这里猜测其只是单纯的判断Id的唯一性,如果通过beans.xsd去做校验应该是没有问题的。下面解决的办法是设置模型的相关信息。


wKioL1V9chmy7t1aAAK4sMByZ3U056.jpg


编辑模块spring-boot-demo的Application Context,将spring-context.xml文件添加到 Spring Application Context中去。 这时候查看spring-context.xml文件是IDEA才认可该配置是Spring的配置,同提示选择profile。


wKioL1V9crrSjsI9AAGz8I0YVj0284.jpg


 选择profile dev之后,IDEA友好的将非活动的profile以灰色呈现,不过具体应用中仍然需要指定活动的profile 如下代码片段所示.


System.setProperty("spring.profiles.active", "product");
ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:spring-context.xml");
List<String> list = (List<String>) ctx.getBean("a");
for (String v : list) {
    System.out.println(v);
}


  另外更加beans-xsd定义在Beans节点下嵌套Beans需要放置在文档最后。定义如下:

  wKioL1V9eqWwkXR9AAF57zr_Qh0545.jpg


  这是强迫症吗?!。

  IDEA与Spring高度集成,其Spring Application Context的配置文件进行管理也是情理之中,并且有其价值所在,比如在单独测试某一个ApplicationContext,或者某一模块。


本文出自 “野马红尘” 博客,请务必保留此出处http://aiilive.blog.51cto.com/1925756/1661831

© 著作权归作者所有

secondriver
粉丝 10
博文 229
码字总数 233821
作品 0
广州
程序员
私信 提问
intellij idea中spring boot properties文件不能自动提示问题解决

idea和sts里面都有对spring boot中properties文件的提示功能,而且可以通过点击属性可以进入到*Properties.java这类文件中。 需要说明的是,idea社区版好像不具备这个功能,还有旗舰版也需要...

李不言
2018/08/21
0
0
IDEA中利用Maven创建Web项目、为Web应用添加Spring框架支持、bean的创建于获取

1 环境版本说明   Jdk : 1.8   Maven : 3.5   IDEA : 专业版 2017.2 2 环境准备   2.1 Maven安装及其配置   2.2 Tomcat安装及其配置 3 详细步骤   3.1 根据模板创建maven工程  ...

CRUD_Architect
2018/08/10
0
0
IntelliJ IDEA 11.0.2 发布,性能可用性显著提升

IntelliJ IDEA团队今天发布了IntelliJ IDEA 11的第2个重大更新版本。 该版本提升了性能,修复了诸多可用性和异常方面的问题,主要包括: 性能:许可输入对话框中的“Discover”按钮执行EDT中...

红薯
2012/02/03
2.4K
8
IntelliJ IDEA 2017.2.1: Bug 修复和性能优化

IntelliJ IDEA 2017.2.1 已发布,该版本已修复 2017.2 版本中出现的中文输入法卡屏的问题(用户反馈尚没修复中文输入法的问题),除此之外还带来以下更新: 专为 Spring Boot 而生的 Run Da...

淡漠悠然
2017/08/02
4.5K
48
IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架

温馨提示:本教程的 GitHub 地址为「intellij-idea-tutorial」,欢迎感兴趣的童鞋、,纠错。 在「详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法」一文中,我们已经将 Intell...

qq_35246620
2018/04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
昨天
2
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部