java - Spring @Configuration 和

我有一个场景 configuring Spring Security on embedded Jetty如果我使用 JavaConfig 来配置 Jetty 服务器,这似乎有点解决了。

因此,对于大型项目来说,JavaConfig 而不是 XML 可能是更好的选择。但是,XML 命名空间中有一些细节,例如 <context:component-scan /> @Configuration 中不容易获得的设置。

我发现 ApplicationContextAware荣获@Configuration类,所以以下是可能的

@Configuration
public class FooConfig implements ApplicationContextAware {
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) {
        ((AnnotationConfigApplicationContext) applicationContext).scan("org.example");
    }
}

另一种选择,即 documented , 是有 @Configuration类使用 @ImportResource注释并拉入现有的 XML 文件:

@Configuration
@ImportResource("applicationContext-withComponentScan.xml")
public class BarConfig {}

我想问题是“以这种方式滥用 ApplicationContextAware 是不好的形式,还是真的不是滥用”?这种方法让人感觉有些奇怪,所以如果 Spring 的家伙以某种我没有发现的方式涵盖了这个,我不会感到惊讶。

对于感兴趣的人,问题与使用 @Resource 扫描 Jersey 设置有关。和 @Provider我宁愿不必手动管理类/XML 配置中的条目的类。

最佳答案

现在 Spring 3.1准备就绪,如果您使用的是 Spring 3.1,则可以安全地使用 @ComponentScan。作为过时的答案之一,它不仅适用于 Spring MVC。您可以按如下方式使用它:

@Configuration
@ComponentScan({"com.foo.bar", "org.foo.bar"})
public class AppConfig{ /** config code */ }

这里是文档 http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/context/annotation/ComponentScan.html

关于java - Spring @Configuration 和 <context :component-scan/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6683771/

相关文章:

java - Spring 转换服务 - 从 List 到 List

java - cvc-complex-type.2.4.c : The matching wildc

java - 导入 org.springframework.test.context.junit4.

java - 在 Spring 注解中使用静态变量

java - Spring批处理远程分块和远程分区之间的区别

spring - 如何正确设置速度的加载器路径

json - 如何解决 jackson 中属性(property)的 setter/getter 定

spring - JPA 标准构建器中的忽略大小写

Java/Hibernate - 只读模式下不允许写操作

spring - memcached 中的最大 key 长度和最大值大小是多少?