• spring学习总结——装配Bean学习四(导入和混合配置)


    情景:在典型的Spring应用中,我们可能会同时使用自动化和显式配置(JavaConfig)或者XML配置,幸好在Spring中,这些配置方案都不是互斥的。你尽可以将JavaConfig的组件扫描和自动装配和/或XML配置混合在一起。

      关于混合配置,第一件需要了解的事情就是在自动装配时,它并不在意要装配的bean来自哪里。自动装配的时候会考虑到Spring容器中所有的bean,不管它是在JavaConfig或XML中声明的还是通过组件扫描获取到的;

    一、在JavaConfig中引用XML配置

     1、使用@Import注解导入JavaConfig

    例子:在CDPlayerConfig中使用@Import注解导入CDConfig;

    CDConfig配置类:

    CDPlayerConfig配置类

    或者采用一个更好的办法,也就是不在CDPlayerConfig中使用@Import,而是创建一个更高级别的SoundSystemConfig,在这个类中使用@Import将两个配置类组合在一起:

     

    2、使用@ImportResource注解导入XML配置

     XML配置BlankDisc类:

    使用@ImportResource注解,假设BlankDisc定义在名为cd-config.xml的文件中,该文件位于根类路径下,那么可以修改SoundSystemConfig,让它使用@ImportResource注解,如下所示:

    两个bean——配置在JavaConfig中的CDPlayer以及配置在XML中BlankDisc——都会被加载到Spring容器之中。因为CDPlayer中带有@Bean注解的方法接受一个CompactDisc作为参数(从spring容器),因此BlankDisc将会装配进来,此时与它是通过XML配置的没有任何关系。

     二、在XML配置中引用JavaConfig

    在JavaConfig配置中,我们已经展现了如何使用@Import@ImportResource来拆分JavaConfig类。在XML中,我们可以使用import元素来拆分XML配置。

    1、使用<import>在XML配置导入其他的XML配置

    比如,假设希望将BlankDisc bean拆分到自己的配置文件中,该文件名为cd-config.xml,这与我们之前使用@ImportResource是一样的。我们可以在XML配置文件中使用<import>元素来引用该文件:

    2、使用<bean>将JavaConfig类导入到XML配置中

    为了将JavaConfig类导入到XML配置中,我们可以这样声明bean:

     你可能还希望创建一个更高层次的配置文件,这个文件不声明任何的bean,只是负责将两个或更多的配置组合起来。例如,你可以将CDConfig bean从之前的XML文件中移除掉,而是使用第三个配置文件将这两个组合在一起:

    不管使用JavaConfig还是使用XML进行装配,我通常都会创建一个根配置(root configuration),也就是这里展现的这样,这个配置会将两个或更多的装配类和/或XML文件组合起来。我也会在根配置中启用组件扫描(通过<context:component-scan>或@ComponentScan)。你会在本书的很多例子中看到这种技术。

  • 相关阅读:
    android状态栏
    python基础(二)——文件操作
    python基础(一)——字符串
    每日读书
    gradle相关
    EditText整体hint
    java生成pdf
    Androidstudio点9图报错
    【ASP.NET Core学习】使用JWT认证授权
    数据访问仓储模式的事务管理(Unit of Work)
  • 原文地址:https://www.cnblogs.com/TvvT-kevin/p/9975914.html
Copyright © 2020-2023  润新知