Spring-IOC-@Import的用法

1、Car.java

java 复制代码
package com.atguigu.ioc;
import lombok.Data;
@Data
public class Car {
    private String cname;
}

2、 MySpringConfiguration2.java

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 {

    @Bean
    public Car getCar2() {
        Car car = new Car();
        car.setCname("问界");
        return car;
    }
}

3、 MySpringConfiguration3.java

java 复制代码
package com.atguigu.ioc;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MySpringConfiguration3 {
    @Bean
    public Car getCar3() {
        Car car = new Car();
        car.setCname("仰望");
        return car;
    }
}

4、CarTest.java

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;
    @BeforeEach
    public void setup() {
        beanFactory = new AnnotationConfigApplicationContext(MySpringConfiguration2.class);
    }
    @Test
    public void test() {
        System.out.println(beanFactory);
    }
}


在Spring中,@Import注解的作用是让我们能够将一个或多个Java配置类导入另一个配置类中,以便共享配置信息和Bean定义。它可以用来导入其他配置类、普通的Java类、甚至是XML配置文件。

@Import注解有以下三种使用方式:

1.导入配置类

我们可以将一个或多个配置类导入到另一个配置类中,以便在当前配置类中使用导入的配置类中的Bean。

示例:

java 复制代码
@Configuration
@Import({DatabaseConfig.class, MessagingConfig.class})
public class AppConfig {
    ...
}

2.导入普通类

我们可以将普通的Java类导入到Spring容器中,让其成为一个Bean。

示例:

java 复制代码
@Configuration
@Import(MyUtilClass.class)
public class AppConfig {
    ...
}

3.导入XML配置文件

我们可以将一个或多个XML配置文件导入到Java配置类中,以便在配置类中使用XML中定义的Bean。

示例:

java 复制代码
@Configuration
@ImportResource({"classpath:applicationContext.xml"})
public class AppConfig {
    ...
}

使用@Import注解可以很方便地将多个配置类或Java类组合在一起,使得Spring应用程序具有更高的灵活性和可重用性。

相关推荐
Larcher22 分钟前
React Router 不只是页面跳转:从 SPA 路由到权限守卫的完整实践
javascript·后端
Larcher29 分钟前
大模型为什么每次回答都不一样?一文搞懂 Temperature、Top K 与 Top P
javascript·后端
LucianaiB3 小时前
毕业老学长给我留的最后一句话是:“AI 写的,别挂我名。” 我直接 神(Seed Evolving) 来!助我!
后端
IvanCodes3 小时前
RAG 实战教程(一):RAG 工作原理与完整流程——分片、索引、召回、重排和生成
人工智能·后端·agent
·薯条大王3 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
CodeSheep4 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
小满zs4 小时前
Go语言第八章(函数)
后端·go
stark张宇5 小时前
实战Go高级特性:Context超时控制、defer资源回收与Channel通信的关键避坑点
后端·go
ZJH__GO6 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆6 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程