Skip to content

启动与容器类(项目核心、加载Bean)

Spring Boot 项目的“入口”和“容器管理核心”,负责启动项目、声明配置类、将对象(Bean)交给 Spring 容器管理,是所有功能的基础。

注解 作用说明
@SpringBootApplication 项目启动类唯一核心注解,整合 @Configuration(配置类)、@EnableAutoConfiguration(自动配置)、@ComponentScan(包扫描)三大功能
@Configuration 标记当前类为配置类,替代传统 XML 配置文件,用于编写自定义配置
@Bean 配合 @Configuration 使用,手动创建 Bean 并注入 Spring 容器,供其他组件调用
@Component 通用组件注解,标记不属于三层(Controller/Service/Mapper)的普通类,让 Spring 管理该类实例
@SpringBootTest 测试类专用注解,用于启动 Spring 容器,进行单元测试或集成测试
// 1. 启动类(核心:@SpringBootApplication)
@SpringBootApplication // 启动项目、自动扫描子包、开启自动配置
public class DemoApplication {
    public static void main(String[] args) {
        // 启动 Spring 容器,加载所有注解标记的 Bean
        SpringApplication.run(DemoApplication.class, args);
    }
}

// 2. 配置类(@Configuration + @Bean)
@Configuration // 声明为配置类
public class AppConfig {
    // 手动创建 User 对象,注入 Spring 容器,Bean 名称默认是方法名 user
    @Bean
    public User user() {
        User user = new User();
        user.setId(1L);
        user.setUsername("测试用户");
        return user;
    }
}

// 3. 通用组件(@Component)
@Component // 标记为 Spring 管理的组件,自动被 @ComponentScan 扫描到
public class RedisUtil {
    // 工具类方法,可被其他组件注入使用
    public void printInfo() {
        System.out.println("Redis 工具类已加载");
    }
}

// 4. 测试类(@SpringBootTest)
@SpringBootTest // 启动 Spring 容器,用于测试
public class AppTest {
    // 注入配置类中手动创建的 User Bean
    @Autowired
    private User user;

    @Test
    public void testBean() {
        System.out.println(user.getUsername()); // 输出:测试用户
    }
}