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




    


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);
    }
}

你可能感兴趣的:(Spring IoC/DI 12-混合配置注入 Bean)