Spring/Eclipse 'referenced bean not found'

2019-01-18 03:19发布

I have just broken up a Spring bean configuration file into smaller external files and have used the the "import" directive to include them in my Spring Test application context XML file.

But whenever I reference one of the beans from the imported files I get a warning within Eclipse/STS/Spring XML editor complaining that "referenced bean 'foo' not found"

Is this is a bug or is it me? It's really annoying because I don't want to disable the warning, yet at my company we try to eliminate all warnings.

3条回答
家丑人穷心不美
2楼-- · 2019-01-18 03:37

According to this thread, this could be similar to:

I have an (admittedly cosmetic) issue with the Spring IDE plugins for Eclipse that I've not been able to solve. I have a situation in which context files A and B are both imported by context C. B makes use of several beans defined in A, but since they're never used independently (only by C), this isn't a problem.

However, the Spring IDE plugin validator marks all of the references to beans in A in context file B as errors, saying something like "Referenced bean 'foo' not found bar.xml". Obviously this is a correct statement, but in my use case it's not an error.

there are two ways of solving this issue:

  1. Only configure context C with Spring IDE and let the other files (A. B) handled by the import support. Doing so will not create the warning. Make sure that you don't add A and B as config files to Spring IDE as they would also be validated stand-alone which causes the validation error you are seeing.
  2. Configure a Config Set for A, B, and C and don't enable Import processing for the project.
查看更多
Melony?
3楼-- · 2019-01-18 03:38

1) It's noble to try to eliminate all warnings, but don't expect to succeed. 10 warnings per project are ok, 500 are not.

2) that said, it's not your bug, it's a feature that's deliberately missing from STS. deliberately, because they have no way of knowing what your runtime classpath will be. Of course they could resolve some import statements, but that would be inconsistent behavior. in short, I have learned to live with this warning

查看更多
我只想做你的唯一
4楼-- · 2019-01-18 03:56

It really annoyed me too!

I'm not sure when this feature was introduced, but with later versions it's possible to add this support.

  1. Right click on your project in the Spring explorer view
  2. Click on properties
  3. See image below:

alt text

I don't understand why it's not checked by default, but it works like a charm after you have enabled it!

If you don't have this option with your version, I will highly recommend to download SpringSource's STS with all necessary Eclipse plugins bundled.

查看更多
登录 后发表回答