@componentscan 与@mapperscan
时间: 2023-05-02 13:04:50 浏览: 80
@componentscan指定要扫描的类所在的包,以便将它们自动装配到Spring容器中。@mapperscan指定要扫描的Mapper接口所在的包,以便将它们自动装配到MyBatis中。这两个注解都是用于在Spring Boot项目中自动化配置Bean。
相关问题
@MapperScan和@ComponentScan
@MapperScan和@ComponentScan都是用于扫描包的注解,但是它们有一些区别。
@MapperScan注解用于扫描Mapper接口所在的包,并生成相应的接口实现类。在持久层的接口上添加@Mapper注解后,编译时会生成对应的接口实现类。为了避免在每个接口上都添加@Mapper注解,可以使用@MapperScan注解来指定要编译成接口实现类的包路径。在编译完成后,该包下的所有接口都会生成相应的接口实现类。这样可以简化代码的编写。
@ComponentScan注解是用于自动扫描包路径下的@Controller、@Service、@Repository、@Component等注解标注的类,并将这些类装配到Spring容器中。通过@ComponentScan注解,可以自动将符合扫描规则的类注入到Spring容器中,方便进行依赖注入和其他操作。
它们的主要区别在于扫描的注解和目的不同。@MapperScan主要用于扫描Mapper接口并生成对应的实现类,而@ComponentScan主要用于扫描带有特定注解的类并装配到Spring容器中。
总结起来,@MapperScan注解用于扫描Mapper接口的包并生成接口实现类,而@ComponentScan注解用于扫描带有特定注解的类并装配到Spring容器中。它们可以同时使用,但需要注意扫描的包路径不能重叠,避免产生错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [@MapperScan和@ComponentScan的区别](https://blog.csdn.net/m0_37597572/article/details/82625631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [@MapperScan和@ComponentScan使用问题](https://blog.csdn.net/weixin_45948234/article/details/110954215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
@mapperscan和@componentscan
@mapperscan和@componentscan是Spring框架中的两个注解。
@mapperscan用于扫描MyBatis的Mapper接口,将其注册为Spring的Bean,使得Mapper接口可以被注入到其他Bean中使用。
@componentscan用于扫描指定的包及其子包下的所有组件(包括@Service、@Repository、@Controller等注解标注的类),将其注册为Spring的Bean,使得这些组件可以被注入到其他Bean中使用。
阅读全文