【Spring Boot 初识丨四】主应用类

上一篇讲了 Spring Boot 的启动器
本篇来讲一讲 主程序类 Main Application Class 及注解
Spring Boot 初识:
【Spring Boot 初识丨一】入门实战
【Spring Boot 初识丨二】maven
【Spring Boot 初识丨三】starter

主程序类

  • 一、定义
  • 二、注解
    • 2.1 @SpringBootApplication
    • 2.2 @EnableAutoConfiguration
    • 2.3 @ComponentScan
    • 2.4 @Configuration

一、定义

  Spring Boot的 主程序类 Main Application Class是包含用于启动Spring ApplicationContext的公共静态void main()方法的类。默认情况下,如果未显式指定主类,则Spring将在编译时在类路径中搜索一个,如果找不到一个或多个,则启动失败 。
   主应用程序类建议定位在根包中,而不是其他的类。注解通常放在主类上,它隐式地为某些项定义了一个基本‘搜索包’。
   例如:如果正在编写一个JPA应用程序,则使用@SpringBootApplication 注释类的包来搜索@Entity 项。
   使用根包还允许组件扫描仅应用当前。

?提示
   如果不想使用@SpringBootApplication ,它导入的@EnableAutoConfiguration@ComponentScan 注解定义了此行为,也可以使用这些注解替代。

二、注解

2.1 @SpringBootApplication

@SpringBootApplication 等效于使用@Configuration @EnableAutoConfiguration @ComponentScan

  • @EnableAutoConfiguration: 启用Spring Boot 的自动配置机制。
  • @ComponentScan@Component在应用程序所在的包上启用扫描。
  • @Configuration:允许在上下文中注册额外的 beans 或导入额外的配置类

   @SpringBootApplication是一个注解,用于标注一个类作为Spring Boot应用程序的主入口。
   它包含了一些默认的配置和自动配置 :

  1. 开启了Spring Boot的自动配置功能,可以自动配置一些常用的组件和依赖。
  2. 开启了Spring MVC的Web支持,提供了一个简单的RESTful API接口。
  3. 开启了Spring Security的安全认证功能,提供了基本的用户认证和授权机制
  4. 开启了日志记录功能,可以使用SLF4J或Logback等日志框架进行日志输出。
  5. 开启了Thymeleaf模板引擎的支持,提供了一种简单易用的模板语法。

   通过使用@SpringBootApplication注解,可以快速搭建一个基于Spring Boot的应用程序,并且不需要手动配置大量的组件和依赖。

2.2 @EnableAutoConfiguration

   EnableAutoConfiguration是Spring Boot的一个自动配置类,尝试猜测和配置您可能需要的 bean。自动配置类通常根据您的类路径和您定义的 bean 应用。它的作用是在应用程序启动时自动配置一些常用的组件和依赖。
   EnableAutoConfiguration会根据应用程序的类路径、环境变量、配置文件等信息,自动配置一些常用的组件和依赖,例如Tomcat、MySQL、Redis等。这样,就可以快速搭建一个基本的应用程序,而不需要手动配置大量的组件和依赖。
   ?注意EnableAutoConfiguration并不是所有的应用程序都需要使用的,有些应用程序可能需要更多的自定义配置。因此,可以根据自己的需求来选择是否使用。

可选元素

修饰符和类型 可选元素 描述
Class<?>[] exclude 排除特定的自动配置类,这样它们就永远不会被应用。
String[] excludeName 排除特定的自动配置类名,这样它们就永远不会被应用。

字段:

修饰符和类型 字段 描述
static final String ENABLED_OVERRIDE_PROPERTY 启用自动配置时可用于覆盖的环境属性。

2.3 @ComponentScan

   ComponentScan注解是Spring框架中的一个注解,用于告诉Spring扫描哪些包下的类。它的作用是从约定的扫描路径中,识别标注了组件注册注解的类,并且把这些类自动注册到Spring IoC容器中 。

   在使用@ComponentScan注解时,需要将其与 @Configuration注解一起使用,指定Spring扫描注解的package。

嵌套类:

修饰符和类型 Class 描述
static @interface ComponentScan.Filter 声明要用作包含过滤器或排除过滤器的类型过滤器。

可选元素

修饰符和类型 可选元素 描述
Class<?>[] basePackageClasses basePackages() 的类型安全替代品,用于指定要扫描带注释组件的包。
String[] basePackages 用于扫描带注释组件的基础包。
ComponentScan.Filter[] excludeFilters 指定哪些类型不符合组件扫描条件。
ComponentScan.Filter[] includeFilters 指定哪些类型符合进行组件扫描。
boolean lazyInit 指定是否应注册扫描的 bean以进行延迟初始化。
Class<? extends BeanNameGenerator> nameGenerator 用于命名 Spring 容器中检测到的组件的BeanNameGenerator类。
String resourcePattern 控制符合组件检测条件的类文件。
ScopedProxyMode scopedProxy 指示是否应为检测到的组件生成代理,当以代理样式使用范围时,这可能是必需的。
Class<? extends ScopeMetadataResolver> scopeResolver 用于解析检测到的组件的作用域的ScopeMetadataResolver
boolean useDefaultFilters 指示是否应启用对用@Component @Repository、@Service或@Controller注释的类的自动检测。
String[] value basePackages() 的别名

2.4 @Configuration

  Configuration是Spring Boot中的一个注解,用于标识一个类为配置类,它可以被Spring容器扫描并加载其中的配置信息。@Configuration注解通常与@Bean注解一起使用,用于定义Spring Bean。@Configuration注解的类可以包含多个@Bean注解的方法,每个方法都会返回一个Spring Bean实例。

可选元素

修饰符和类型 可选元素 描述
boolean enforceUniqueMethods 指定@Bean方法是否需要具有唯一的方法名称,否则会引发异常以防止意外重载。
boolean proxyBeanMethods 指定@Bean方法是否应该代理以强制执行 bean 生命周期行为
String value 显式指定与@Configuration类关联的 Spring bean 定义的名称 。

在这里插入图片描述文章来源地址https://uudwc.com/A/Wve0

  如果喜欢的话,欢迎 ?关注 ?点赞 ?评论 ?收藏  ?一起讨论
  你的评价就是我✍️创作的动力!					  ???

原文地址:https://blog.csdn.net/wodejiaAA/article/details/131139228

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年06月13日 01:59
神经网络实验--卷积神经网络
下一篇 2023年06月13日 01:59