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”)
--------------------------------------------------------------------------------------------------------------------------------
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容器中,相当于配置文件中的