Spring中的@ImportResource

Posted heliusking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring中的@ImportResource相关的知识,希望对你有一定的参考价值。

简介

这个注解很简单,就是导入spring的xml配置文件

直接来看spring官方文档:

In applications where @Configuration classes are the primary mechanism for configuring the container, it will still likely be necessary to use at least some XML. In these scenarios, simply use @ImportResource and define only as much XML as is needed. Doing so achieves a "Java-centric" approach to configuring the container and keeps XML to a bare minimum.

当我们使用java配置类的时候,比如springboot工程,就推荐使用java配置类,理论上我们可以完全消除xml配置文件,但是有时候我们需要导入spring的xml配置文件,就需要使用这个注解

举例:

首先是我们的java配置类

@Configuration
@ImportResource("classpath:/com/acme/properties-config.xml")
public class AppConfig 

    @Value("$jdbc.url")
    private String url;

    @Value("$jdbc.username")
    private String username;

    @Value("$jdbc.password")
    private String password;

    @Bean
    public DataSource dataSource() 
        return new DriverManagerDataSource(url, username, password);
    
properties-config.xml
<beans>
    <context:property-placeholder location="classpath:/com/acme/jdbc.properties"/>
</beans>

jdbc.properties

jdbc.properties
jdbc.url=jdbc:hsqldb:hsql://localhost/xdb
jdbc.username=sa
jdbc.password=

运行测试方法:

public static void main(String[] args) 
    ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
    TransferService transferService = ctx.getBean(TransferService.class);
    // ...结果略

说明

以上是spring官方文档对于该注解的说明和示例,比较简单,不赘述。

以上是关于Spring中的@ImportResource的主要内容,如果未能解决你的问题,请参考以下文章

SSH中的spring是做啥的?

Spring杂谈 | Spring中的AutowireCandidateResolver

Spring中的AOP

Spring中的AOP

spring事件驱动模型--观察者模式在spring中的应用

Spring中的Bean