@ComponentScan的注意事项

简介: @ComponentScan的注意事项

在 Spring 中,@ComponentScan 注解用于标注一个注解类,表示要扫描的包和类。在 Spring Boot 中,@ComponentScan 注解通常用于自动配置,它会自动扫描被注解的类所在的包及其子包,并将符合条件的类的实例化并装配到 Spring 容器中。

@ComponentScan 注解需要设置一个或多个扫描路径,用于表示要扫描的包或类。具体来说,@ComponentScan 注解中的 value 属性可以设置多个扫描路径,也可以将这些扫描路径统一存放到一个数组中,例如:

@ComponentScan(value = {"com.example.mypackage"})
public class AppConfig {
// ...
}
在这个例子中,我们指定了 com.example.mypackage 的包及其子包下的所有类都会被扫描到,然后被 Spring 自动实例化并装配到容器中。

@ComponentScan 注解还有一个 basePackages 属性,可以用于指定要扫描的多个包路径:

@ComponentScan(basePackages = {"com.example.package1", "com.example.package2"})
public class AppConfig {
// ...
}
在这个例子中,我们指定了两个包路径 com.example.package1 和 com.example.package2,它们下面的所有类都会被扫描到,并被 Spring 自动实例化并装配到容器中。

需要注意的是,@ComponentScan 注解不仅仅会扫描 @Component 注解标注的类,还会扫描其他几个常用的注解标注的类,包括 @Controller、@Service、@Repository 等,因此需要保证这些注解标注的类在 @ComponentScan 的范围内。

相关文章
|
4月前
|
Java Spring 容器
【Java】Spring如何扫描自定义的注解?
【Java】Spring如何扫描自定义的注解?
126 0
|
3月前
|
XML 存储 Java
|
3月前
|
Java
springboot自定义log注解支持EL表达式
springboot自定义log注解支持EL表达式
107 0
|
3月前
|
JSON 前端开发 Java
SpringBoot常用注解与注意事项
SpringBoot常用注解与注意事项
32 0
|
XML 开发框架 JSON
Spring注解扫描:ComponentScan使用及原理详解
当下`Spring Boot`之所以能成为主流首选开发框架,得益于其核心思想:**约定大于配置**和`Spring`提供的基于注解配置式开发,解决了繁琐的`XML`文件配置问题,大大提高了开发效率。基于`Spring MVC`三层架构框架开发的项目中大量用到`@Controller, @Service...`等注解,即使这些类在不同包路径下,都能被注入到`Spring`容器中,然后可以相互之间进行依赖注入、使用。这时候就有一个问题了:`Spring`是如何将声明了`@Component`注解的Bean注入到`Spring`容器当中的呢?怎么做到bean的类定义可以随意写在不同包路径下?
469 0
|
XML NoSQL Java
@PropertySource注解使用详情
@PropertySource注解使用详情
913 1
|
存储 Java Spring
自定义spring注解使用
自定义spring注解使用+ThreadLocal使用
自定义spring注解使用
|
Java Spring 容器
请举例说明@Qualifier注解?
请举例说明@Qualifier注解?
请举例说明@Qualifier注解?
如何开启基于注解的自动装配?
如何开启基于注解的自动装配?
如何开启基于注解的自动装配?
|
Java Maven
SpringBoot - @ComponentScan & @SpringBootApplication 扫描覆盖问题
SpringBoot - @ComponentScan & @SpringBootApplication 扫描覆盖问题
485 0
SpringBoot - @ComponentScan & @SpringBootApplication 扫描覆盖问题