@ServletComponentScan和@ComponentScan 注解

1、介绍
在SpringBoot项目启动器中添加@ServletComponentScan注解后,SpringBoot在启动时会扫描并注册所有带有@WebServlet(控制器)、@WebFilter(过滤器)、@WebListener(监听器)注解的类。

需要注意

     可以任意位置创建类,但是类名的末尾必须包含servlet、filter、listener中的一个

2、实例讲解
2.1、在入口Application类上加入注解@ServletComponentScan

package com.hui;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
 
@SpringBootApplication
@ServletComponentScan
public class Application {
 
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2.2、.新建Servlet类,继承HttpServlet并且加入注解

//xxx:自定义      xxxxx:自选路劲

@WebFilter(name=“xxx”,urlPatterns=“xxxxx”)

@ServletComponentScan和@ComponentScan 注解_第1张图片

--------------------------------------------------------------------------------------------------------------------------------

springboot 项目启动类中我们经常见到这两个注解@ServletComponentScan和@ComponentScan

下面我们就言简意赅的介绍一下这两个注解的作用

一、 @ServletComponentScan

在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。

二、 @ComponentScan

Spring是一个依赖注入(dependency injection)框架。所有的内容都是关于bean的定义及其依赖关系。定义Spring Beans的第一步是使用正确的注解-@Component或@Service或@Repository.
但是,Spring不知道你定义了某个bean除非它知道从哪里可以找到这个bean.
ComponentScan做的事情就是告诉Spring从哪里找到bean。

包扫描会扫描只要标注了@Controller,@Service,@Repository,@Component这四个注解都会被扫描到容器中。
1、@Controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
2、@Service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
3、@Repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
4、@Component (把普通pojo实例化到spring容器中,相当于配置文件中的)泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Service等的时候),我们就可以使用@Component来标注这个类。
 

你可能感兴趣的:(spring,boot,后端,java)