Spring 启动流程!!!

打印 上一主题 下一主题

主题 861|帖子 861|积分 2585

启动后端服务时,标注了 @PostConstruct 注解的方法会自动实行。当你启动一个 Spring Boot 或 Spring 应用时,Spring 容器会在初始化 Bean 时自动实行这些方法。
详细解释:


  • Spring 启动流程

    • 当你启动后端服务时(比如通过 java -jar 或通过 Spring Boot 的启动类运行),Spring 会初始化 Spring 容器
    • 在容器启动时,Spring 会扫描配置文件、扫描 @Component、@Service、@Repository 等注解标注的类,然后实例化这些 Bean。
    • @PostConstruct 注解的方法会在全部的依靠注入完成之后被自动调用。这意味着,只要你的服务启动并且 Spring 完成 Bean 的初始化后,这些 @PostConstruct 注解的方法会自动实行。

核心步骤:


  • Spring 容器启动:例如,通过 Spring Boot 启动类启动服务时,Spring Boot 会自动创建并初始化 Spring 容器。
  • 实例化 Bean:Spring 会根据配置和注解界说实例化全部的 Bean,包括扫描到的 @Component、@Service 等注解标注的类。
  • 依靠注入:容器会注入所需的依靠(如通过 @Autowired 注解的字段、构造函数等)。
  • 实行 @PostConstruct 注解的方法:当全部的依靠注入完成后,Spring 会自动实行标注了 @PostConstruct 注解的方法。
  • Bean 可用:全部的初始化过程完成后,Bean 就可以在整个应用中使用。
Spring Boot 示例:

假设你有一个 Spring Boot 项目,在此中有一个服务类标注了 @PostConstruct 注解:
  1. import org.springframework.stereotype.Service;
  2. import javax.annotation.PostConstruct;
  3. @Service
  4. public class MyService {
  5.     @PostConstruct
  6.     public void init() {
  7.         System.out.println("MyService 初始化完成!");
  8.     }
  9.     public void execute() {
  10.         System.out.println("业务逻辑执行");
  11.     }
  12. }
复制代码
启动 Spring Boot 应用:

  1. import org.springframework.boot.SpringApplication;
  2. import org.springframework.boot.autoconfigure.SpringBootApplication;
  3. @SpringBootApplication
  4. public class Application {
  5.     public static void main(String[] args) {
  6.         SpringApplication.run(Application.class, args);
  7.     }
  8. }
复制代码
启动后的举动:


  • 启动服务:当你运行 Application.main() 启动 Spring Boot 应用时,Spring 会启动容器。
  • Bean 实例化:Spring 会扫描到 MyService 类,实例化它,并自动实行此中的 @PostConstruct 注解的 init() 方法。
  • 输出:在控制台中,你会看到 MyService 初始化完成!,表明 @PostConstruct 方法已经被实行。
  • 服务正常运行:之后,你的应用会继续运行,MyService 的其他方法(如 execute())也可以被调用。
总结:



  • 启动后端服务时,Spring 容器会自动初始化全部 Bean,并且在初始化过程中会自动实行全部标注了 @PostConstruct 注解的方法。这意味着,在应用启动时,@PostConstruct 标注的方法会被自动调用,以完成 Bean 的初始化工作。
  • 这种初始化机制发生在 后端服务启动的早期阶段,即在 Spring 容器完成 Bean 实例化和依靠注入后,但是在服务真正开始处理请求之前。
因此,你可以放心地认为,当服务启动时,@PostConstruct 方法会自动实行,不需要手动调用。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表