Spring 3 jar配置(自动配置)
我正在寻找某种有关 Spring jar 配置的“最佳实践”信息。我有一个网络项目(war),我需要连接一些 jar 库 - 我的 jar 包含附加功能。这些 jar 包含 Spring 服务。但是当我连接 jar 时,服务类不起作用,因为 Spring 不知道这一点。所以我需要通过 jar 中的“package auto scan”配置来告诉 Spring 这件事。
最终的解决方案必须是 war 项目(主要功能)和一些包含其他功能的附加 jar。当我将 jar 添加到 war 项目中时,我不想更改 applicationContext.xml 中的配置(在 war 中)。我希望尽量减少对战争项目的依赖。我在想,当我将 applicationContext.xml 放入 jar 中的 META-INF 文件夹时,Spring 会自动加载它,但事实并非如此。
你知道我该如何解决这个问题吗?可能是某种“启动后动态配置”:-)。谢谢
I'm looking for some kind of "best practice" informations about Spring jar configuration. I have a web project (war) and I need connect some jar libraries - my jars which contains additional functions. These jars contains Spring services. But when I connect jar, the service class did not work, because Spring don't know about that. So I need to tell Spring about this by “package auto scan” configuration inside my jar.
The final solution must be war project (main functions) and some additional jars which contains other functions. When I add jar into war project, I don't want to change configuration in applicationContext.xml (in war). I want minimal dependency to war project. I was thinking, when if I place applicationContext.xml to META-INF folder in jar it will be auto loaded by Spring, but it is not.
Do you know how can i solve this? May be some kind of “after startup dynamic configuration” :-). thanx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您尝试将 jar 中带注释的 bean 加载到 war 的 Spring 上下文中,则可以在 war 的上下文 xml 文件中设置组件扫描来扫描 jar 中的包。
如果您尝试从 jar 中加载 XML 文件中定义的 bean,则可以使用类似以下内容将它们包含在您的 war 的 Spring 上下文 xml 文件中:
您不需要以这种方式让您的 jar 了解有关您的 war 的任何信息。您只需扫描带注释的 bean 和/或从 jar 导入配置即可。
If you are trying to load annotated beans from the jars into your war's Spring context, you can set up a component scan in the war's context xml file to scan the packages in the jars.
If you are trying to load beans defined in XML files from the jars, you can include them using something like this in your war's Spring context xml file:
You shouldn't need to have your jar know anything about your war this way. You just scan the annotated beans and/or import the config from the jar.