启动与容器类(项目核心、加载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()); // 输出:测试用户
}
}
|