Spring-@Import和@ImportResource区别
@Import
You need not put all your
@Configurationinto a single class. The@Importannotation 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
@Configurationclass. You can then use an@ImportResourceannotation 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可以成功注入到容器
本文介绍了Spring框架中@Import与@ImportResource的区别及用法。@Import用于引入额外的配置类来定义Bean,通常与@Configuration一起使用;而@ImportResource则用于加载XML配置文件,实现XML配置的装载。
2391

被折叠的 条评论
为什么被折叠?



