1、Car.java
package com.atguigu.ioc; import lombok.Data; @Data public class Car {private String cname; }
2、 MySpringConfiguration2.java
package com.atguigu.ioc; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @Import(MySpringConfiguration3.class) public class MySpringConfiguration2 {@Beanpublic Car getCar2() {Car car = new Car();car.setCname("问界");return car;} }
3、 MySpringConfiguration3.java
package com.atguigu.ioc; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MySpringConfiguration3 {@Beanpublic Car getCar3() {Car car = new Car();car.setCname("仰望");return car;} }
4、CarTest.java
package com.atguigu.ioc; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class CarTest {private BeanFactory beanFactory;@BeforeEachpublic void setup() {beanFactory = new AnnotationConfigApplicationContext(MySpringConfiguration2.class);}@Testpublic void test() {System.out.println(beanFactory);} }
在Spring中,@Import注解的作用是让我们能够将一个或多个Java配置类导入另一个配置类中,以便共享配置信息和Bean定义。它可以用来导入其他配置类、普通的Java类、甚至是XML配置文件。
@Import注解有以下三种使用方式:
1.导入配置类
我们可以将一个或多个配置类导入到另一个配置类中,以便在当前配置类中使用导入的配置类中的Bean。
示例:
@Configuration @Import({DatabaseConfig.class, MessagingConfig.class}) public class AppConfig {... }
2.导入普通类
我们可以将普通的Java类导入到Spring容器中,让其成为一个Bean。
示例:
@Configuration @Import(MyUtilClass.class) public class AppConfig {... }
3.导入XML配置文件
我们可以将一个或多个XML配置文件导入到Java配置类中,以便在配置类中使用XML中定义的Bean。
示例:
@Configuration @ImportResource({"classpath:applicationContext.xml"}) public class AppConfig {... }
使用@Import注解可以很方便地将多个配置类或Java类组合在一起,使得Spring应用程序具有更高的灵活性和可重用性。