springboot启动项详解

前言 在Spring Boot项目启动后,代码加载的先后顺序如下:

  1. 加载外部配置文件: Spring Boot会首先加载应用程序的外部配置文件,例如application.propertiesapplication.yml文件。这些文件中的配置会被加载并应用于整个应用程序。

  2. 扫描并加载Bean定义: Spring Boot会扫描指定的包及其子包,查找带有特定注解(如@Component@Controller@Service等)的类,并根据这些类的定义创建相应的Bean实例。这一过程会生成应用程序的Bean定义,包括依赖注入的配置信息。

  3. 执行Spring Boot的自动配置: Spring Boot提供了自动配置机制,它会根据应用程序的依赖和配置情况,自动配置各种常见的功能模块,例如数据库连接、Web服务器等。自动配置是根据一系列约定和条件触发的,它简化了应用程序的配置工作。

  4. 执行应用程序的启动回调: 在所有的Bean都被创建和初始化之后,Spring Boot会执行一些启动回调方法。这些回调方法可以在应用程序中实现CommandLineRunnerApplicationRunner接口,并用于执行特定的初始化逻辑或任务。

  5. 启动内嵌的Web服务器: 如果应用程序是一个Web应用,Spring Boot会在加载完所有的配置和Bean定义之后,启动内嵌的Web服务器(如Tomcat、Jetty等),以便处理HTTP请求和响应。

  6. 应用程序启动完成: 一旦内嵌的Web服务器启动成功,应用程序就完成了启动过程,可以响应来自客户端的请求。

需要注意的是,以上是一个典型的Spring Boot应用程序启动的顺序,但具体的加载顺序也可能受到配置和依赖的影响,例如使用@Order注解指定加载顺序,或根据条件选择性加载某些组件。因此,在实际项目中,可能会有一些差异和定制化的配置。

1-1 Spring Boot加载外部配置文件的顺序以及详解

支持多种外部配置文件格式,例如.properties、.yaml、.yml等。以下是加载外部配置文件的详细解释:

  1. 默认配置文件位置:

    • Spring Boot默认会加载以下位置的配置文件(按优先级降序):
      1. 当前目录下的config/文件夹。
      2. 当前目录。
      3. classpath下的config/文件夹。
      4. classpath根目录。
  2. 配置文件命名:

    • 默认情况下,Spring Boot会加载application.propertiesapplication.yml作为主配置文件。
    • 可以使用spring.config.namespri
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot中,每个程序都有一个主入口,即main方法。在main方法中,调用SpringApplication.run()来启动整个Spring Boot程序。需要在该方法所在的类上使用@SpringBootApplication注解,并可以使用@ImportResource注解(如果需要的话)。 通过上述的启动回调方式,可以在Spring Boot应用程序启动后执行自定义的初始化逻辑,例如加载数据、初始化缓存、启动定时任务等。这些回调机制提供了灵活且方便的方式来扩展和定制Spring Boot应用程序的启动过程。 Spring Boot提供了几种执行应用程序启动回调的方式,这些回调可用于在应用程序启动过程中执行自定义逻辑。以下是一些常用的启动回调方式: - 使用CommandLineRunner或ApplicationRunner接口,在run方法中编写自定义逻辑。 - 使用@PostConstruct注解,在方法上进行初始化操作。 - 使用ApplicationListener接口,监听ApplicationEvent事件,在事件发生时执行相应逻辑。 - 使用Spring Boot提供的特定注解,如@EventListener、@Scheduled等,实现特定的启动回调逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [spring boot 启动](https://blog.csdn.net/AAAAA118/article/details/124829717)[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* *3* [springboot启动项详解](https://blog.csdn.net/xiaoweiwei11/article/details/130850040)[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 ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值