@Import批注的用例是什么?

恩佐

根据官方文件

注释类型配置

指示一个类声明了一个或多个@Bean方法,并且可以由Spring容器处理以生成Bean定义...

@Configuration类可以使用@Import批注组成,这与Spring XML中的工作方式不同。因为@Configuration对象在容器内作为Spring bean管理。

但是我也可以在没有@Import的情况下使用@Configuration批注。我已经测试了下面列出的代码,它可以按预期工作。那么使用@Import的目的是什么?

DispatcherServletInitializer

public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] { WebConfig.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return null;
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }
    
 }

WebMvcConfigurerAdapter

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "package.name" })
// @Import(OptionalConfig.class) 
public class WebConfig extends WebMvcConfigurerAdapter {
    // ...
}

可选配置

@Configuration
public class OptionalConfig {
    
    @Bean(name = "myClass")
    public MyClass myClass() {
        return new MyClass();
    }
}

服务

@Service
public class MyServiceImpl implements MyService {
    
    @Autowired
    private MyClass myClass;    // yes, it works

    // ...
}
马塞尔

到目前为止,我们已经看到了如何将bean定义分解为多个@Configuration类,以及如何跨@Configuration边界引用这些bean 这些情况要求将所有@Configuration都提供给的构造函数JavaConfigApplicationContext,但这并不总是理想的。通常,最好使用聚合方法,其中一个@Configuration类在逻辑上导入由另一个类定义的bean定义。

@Import注释就提供了这种支持,而且它是直接等同<import/>于Spring bean的XML文件中找到的元素。

http://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch04s03.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

IntStream的用例是什么?

来自分类Dev

此功能的实际用例是什么?

来自分类Dev

Android Future的用例是什么?

来自分类Dev

原子读取的用例是什么

来自分类Dev

“数组地址”的实际用例是什么?

来自分类Dev

冷观测的用例是什么?

来自分类Dev

git名称空间的用例是什么?

来自分类Dev

git branch -d的用例是什么

来自分类Dev

匿名联合类型的用例是什么

来自分类Dev

glTexParameterIiv和glTexParameterIuiv的用例是什么?

来自分类Dev

ons.ready()的用例是什么?

来自分类Dev

(->)r的MonadReader实例的用例是什么

来自分类Dev

Streams和Firehose的用例是什么?

来自分类Dev

模块的正确用例是什么?

来自分类Dev

此功能的实际用例是什么?

来自分类Dev

不可变对象的用例是什么

来自分类Dev

ons.ready()的用例是什么?

来自分类Dev

Firebase 队列的用例是什么?

来自分类Dev

声明合并的用例是什么?

来自分类Dev

@ServiceDependency批注的影响是什么

来自分类Dev

为什么在反应中使用裁判?用例是什么?

来自分类常见问题

Java AtomicReference#getAndSet的用例是什么?

来自分类Dev

bash中“ $ *”的一些用例是什么?

来自分类Dev

Android中Property类的用例是什么

来自分类Dev

Scala中“忽略变量”语法的用例是什么?

来自分类Dev

Swift中被忽略的参数的用例是什么

来自分类Dev

Azure云服务辅助角色的用例是什么?

来自分类Dev

std :: atomic <T>上的volatile操作的用例是什么?

来自分类Dev

Python:set.pop()的用例是什么?