• SpringBoot 注解简介(持续更新)


    虽然工作中交替会使用spring mvc 和spring boot 框架,但实际对spring中的很多注解并不是很了解,本篇将持续更新学习到的spring 注解。

    Spring 主入口类上的注解

    Spring boot项目中一般都会有这样的启动类:

    复制代码
    @SpringBootApplication
    @ServletComponentScan(basePackages = { "com.xxx.web.controller" })
    @ComponentScan(value = { "com.xxx" })
    @EnableAutoConfiguration(exclude = { Xxx.class })
    @EnableConfigurationProperties
    public class Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    
    }
    复制代码

    那么,你对启动类中的诸多注解了解多少?

    @ServletComponentScan

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

    @ComponentScan

    @ComponentScan告诉Spring哪个packages下用注解标识的类会被spring自动扫描并装入bean容器。通俗一点说,如果你某个类用@Controller注解标识了,如果入口启动类中不加上@ComponentScan注解,那么该Controller就不会被spring扫描到,更不会装入Spring容易中,那么你在代码中就不能使用@Autowired注解使用,换句话说,你配置的这个Controller便没有意义。

    @EnableAutoConfiguration 

    参考文章 链接

    从classpath中搜索所有META-INF/spring.factories配置文件,然后将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项加载到spring容器
    只有spring.boot.enableautoconfiguration为true(默认为true)的时候,才启用自动配置
    @EnableAutoConfiguration还可以进行排除,排除方式有2中,一是根据class来排除(exclude),二是根据class name(excludeName)来排除
    其内部实现的关键点有
    1)ImportSelector 该接口的方法的返回值都会被纳入到spring容器管理中
    2)SpringFactoriesLoader 该类可以从classpath中搜索所有META-INF/spring.factories配置文件,并读取配置
     

    @EnableConfigurationProperties

    读取配置文件的信息并自动封装成实体类并在程序中直接使用。有一个实体类,实体类可以通过配置文件进行赋值。

     

     

  • 相关阅读:
    【Linux】linux nfs共享存储服务
    RK3568百兆网口
    安全狗核心产品入选《云原生产品目录》云原生安全实力备受认可!
    重组蛋白/细胞因子的实验操作
    PDF能编辑修改吗?教你必备的几种编辑方法
    14年本科毕业,3个月转行软件测试月薪13.5k,32的岁我终于找对了方向
    chatgpt赋能python:Python怎么取二进制低三位?
    永远无法实现的“诚实“
    基于matlab的光纤通信误码率仿真
    String、StringBuffer、StringBuilder的区别
  • 原文地址:https://www.cnblogs.com/xlli/p/10043263.html