论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
分布式数据库
›
Spring 启动流程!!!
Spring 启动流程!!!
用多少眼泪才能让你相信
论坛元老
|
2024-12-19 10:20:39
|
显示全部楼层
|
阅读模式
楼主
主题
1004
|
帖子
1004
|
积分
3014
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
启动后端服务时,标注了 @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企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
用多少眼泪才能让你相信
论坛元老
这个人很懒什么都没写!
楼主热帖
iNeuOS工业互联网操作系统,增加搜索应 ...
安卓期末大作业——单词本APP(源码+任 ...
【Java开源数据库语言】基于SPL如何提 ...
杭州联合银行 x 袋鼠云:打造智能标签 ...
vue3+Element采用递归调用封装导航栏 ...
个人博客系统(附源码)
真正在大厂干了几年,我学会了反内卷[ ...
攻防世界 new_easypwn 题解
内网安全 - 简单域环境搭建
ssrf实战
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
移动端开发
物联网
云原生
快速回复
返回顶部
返回列表