Spring-@Import和@ImportResource区别
@Import
You need not put all your
@Configuration
into a single class. The@Import
annotation can be used to import additional configuration classes
引入需要加载的Bean, 配置@Configuration一起使用
@ImportResource
If you absolutely must use XML based configuration, we recommend that you still start with a
@Configuration
class. You can then use an@ImportResource
annotation to load XML configuration files
- 引入spring配置文件.xml,实现xml配置的装载
- @Configuration注解一起使用
案例
Halasa
类:
public class Halasa {
public void speak(){
System.out.println("speak");
}
}
Hello
类:
public class Hello {
public void sayHi(){
System.out.println("hi");
}
}
Config
配置类:
@Configuration
@Import(Hello.class)
@ImportResource("classpath:halasa-context.xml")
public class Config {
}
xml 配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
default-autowire="byName" default-lazy-init="false">
<description>Spring Configuration</description>
<!-- 开启注解模式 -->
<bean name="halasa" class="com.consumer.test.Halasa"></bean>
</beans>
测试类:
public class Main {
public static void main(String[] args) {
ApplicationContext context =
new ATn3GzC4AWgNah5AWjodngzkSeUoV8gL9F(Config.class);
Hello hello = context.getBean(Hello.class);
hello.sayHi();
Halasa halasa = context.getBean(Halasa.class);
halasa.speak();
}
}
测试结果:
hi
speak
可以发现,Hello , Halasa Bean可以成功注入到容器