ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Spring 启动流程!!!
[打印本页]
作者:
用多少眼泪才能让你相信
时间:
2024-12-19 10:20
标题:
Spring 启动流程!!!
启动后端服务时,标注了 @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 注解:
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
@Service
public class MyService {
@PostConstruct
public void init() {
System.out.println("MyService 初始化完成!");
}
public void execute() {
System.out.println("业务逻辑执行");
}
}
复制代码
启动 Spring Boot 应用:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
复制代码
启动后的举动:
启动服务
:当你运行 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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4