Spring IoC/DI 12-混合配置注入 Bean

混合配置注入 Bean

一般情况下,注入 Bean 的方式,不是通过 XML 配置,就是通过 Java 配置,如果想要同时将两种配置生效(即混合配置),则需要在 Java 配置中通过 @ImportResource 注解导入 XML 配置,应用时通过 Java 配置获取 Bean,此时 Java 配置和 XML 配置的 Bean 都可以获取到。

示例

UserJava.java --> 通过 Java 配置注入 Bean

public class UserJava {
    @Override
    public String toString() {
        return "UserJava{}";
    }
}

UserXml.java --> 通过 XML 配置注入 Bean

public class UserXml {
    @Override
    public String toString() {
        return "UserXml{}";
    }
}

applicationContext.xml --> XML 配置,只注入了 UserXml 的 Bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean class="org.daistudy.bean.UserXml" id="userXml"/>
</beans>

JavaConfig.java --> Java 配置,只注入了 UserJava 的 Bean,但通过 @ImportResource 注解导入 XML 配置

@Configuration
@ImportResource({"classpath:applicationContext.xml"})
public class JavaConfig {

    @Bean
    UserJava userJava(){
        return new UserJava();
    }
}

应用 --> Java 配置和 XML 配置的 Bean 都可以获取到

public class Test {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
        UserJava userJava = (UserJava) context.getBean("userJava");
        System.out.println(userJava);
        UserXml userXml = (UserXml) context.getBean("userXml");
        System.out.println(userXml);
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本章内容: 声明Bean 构造器注入和Setter方法注入 装配Bean 控制bean的创建和销毁 任何一个成功的...
    谢随安阅读 1,659评论 0 9
  • 主要内容 Spring的配置方法概览 自动装配bean 基于Java配置文件装配bean 控制bean的创建和销毁...
    程序熊大阅读 9,624评论 3 47
  • 2.1 Spring配置的可选方案 Spring提供了三种主要的装配机制: 1)在XML中进行显示配置。2)在ja...
    如一诺然阅读 503评论 0 1
  • 来源:关于Spring IOC (DI-依赖注入)你需要知道的一切作者:zejian Dao层(AccountDa...
    杨井阅读 5,359评论 0 27
  • 大半夜,看了场无趣的革命电影后,竟然睡不着了。也许养成的习惯难以戒掉,晚上不写文就睡不着?好吧,我权且承认自己已经...
    梅子Mey阅读 222评论 1 5