SpringBootApplication扫描controller
时间: 2024-08-12 14:10:05 浏览: 48
`SpringBootApplication` 是 Spring Boot 提供的一个便捷的配置注解,它结合了 `@SpringBootConfiguration`、`@EnableAutoConfiguration` 和 `@ComponentScan` 三个功能。当你在一个 Java 类上使用 `@SpringBootApplication` 注解时,Spring Boot 会自动配置环境、组件扫描以及启用一些常用的自动配置。
具体到 `@ComponentScan`,它用于指定 Spring 容器应该搜索和注册哪些组件(通常是控制器或服务)。当 `@SpringBootApplication` 自带 `@ComponentScan` 时,如果你没有明确指定 `value` 属性,Spring Boot 会默认扫描包含当前 `@SpringBootApplication` 类在内的包及其子包下的 `@Component`、`@Service`、`@Repository` 和 `@Controller` 等标注的类。
例如:
```java
@SpringBootApplication
@ComponentScan // 默认扫描
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
在这个例子中,Spring 容器会自动找到并初始化所有在 `MyApplication` 包及其子包内的控制器类。
如果你想要扫描特定的包,可以这样指定:
```java
@SpringBootApplication
@ComponentScan("com.example.myapp.controllers") // 扫描com.example.myapp.controllers包下的Controller
public class MyApplication {
// ...
}
```
阅读全文