springboot中项目启动时实现初始化方法加载参数
作者:这辈子_安静的努力着 发布时间:2023-08-31 06:00:40
springboot项目启动,初始化方法加载参数
今天我看到项目中用到了 @PostConstruct 这个注解,之前没看到过,特地查了一下,
1.@PostConstruct说明
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
2.@PreDestroy说明
被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
可以看出来这个注解是用来项目启动时,进行加载参数的初始化参数的操作
然后我就总结了下springboot中几种项目启动时,可以初始化加载参数的方法。
第一种:注解@PostConstruct
项目启动之后,可以看到这行代码在项目启动的时候已经执行了
第二种:实现CommandLineRunner接口
@Order注解里面的参数是类执行的顺序,由小到大顺序
类中的输出语句都打印出来了
第三种:springboot的启动类
最简单的方法,直接在springboot的启动类中加上需要初始化的类就行了~
springboot初始化参数顺序
spring初始化参数顺序为
构造器-->自动注入-->PostConstrut-->InitializingBean-->init方法
-->CommandLineRunner接口方法
在容器初始化过程中便会按照如下的顺序执行初始化对象的操作。
初始化——构造方法!
初始化——@PostConstruct方法
初始化——InitializingBean接口
初始化——init方法!
---容器启动完毕后...
容器启动—CommandLineRunner接口方法!
来源:https://blog.csdn.net/qq_35868412/article/details/89085500


猜你喜欢
- Task的应用Task的MSDN的描述如下:【Task类的表示单个操作不会返回一个值,通常以异步方式执行。Task对象是一种的中心思想基于任
- 基本使用使用WebView通常是需要网络的,所以需要加上访问网络的权限<uses-permission android:name=&q
- 十六进制字符串与数值类型之间转换(C# 编程指南) 以下示例演示如何执行下列任务: 获取字符串中每个字符的十六进制值。 获取与十六进制字符串
- Controller @RequestMapping作用@RequestMapping是一个用来处理请求地址映射的注解,可用于类或者方法上。
- menu部分xml代码<?xml version="1.0" encoding="utf-8"
- 今天突然想起来,java产生随机数的问题,上机试了一下,找到了一点区别,在这里总结一下;直接调用Math.random()是产生一个[0,1
- Java中 * 主要有JDK和CGLIB两种方式。区别主要是jdk是代理接口,而cglib是代理类。优点:这种方式已经解决我们前面所有日记
- 本文实例讲述了C# winform实现右下角弹出窗口结果的方法。分享给大家供大家参考,具体如下:using System.Runtime.I
- 场景最近在做数据分析项目,里面有这样一个业务:把匹配的数据打上标签,放到新的索引中。数据量:累计亿级的数据使用场景:可能会单次查询大量的数据
- 先上效果图文件和加密文件之间的转换。先添加辅助类public class AES_EnorDecrypt { &n
- Android Notification使用方法总结一. 基本使用1.构造notification NotificationCompat.B
- Android动画 实现开关按钮动画(属性动画之平移动画),最近做项目,根据项目需求,有一个这样的功能,实现类似开关的动画效果,经过自己琢磨
- 在作应用系统开发时,管理配置是必不可少的。例如数据库服务器的配置、安装和更新配置等等。由于Xml的兴起,现在的配置文件大都是以xml文档来存
- Android RecyclerView小白今天第一次接触RecyclerView,前辈大神告诉我这是一个很神奇的控件,一看就是
- C#中的表格控件只有一个,那就是datagridview,不像QT中可以用QTableview,QTableWidget。新手拿到datag
- java 交换两个数据的方法1:利用数组,即先把要交换的数字放在数组中 ,比如在一些数组排序中可能用到public static void
- 本文实例讲述了C#多线程与跨线程访问界面控件的方法。分享给大家供大家参考。具体分析如下:在编写WinForm访问WebService时,常会
- mysql默认的隔离级别是repeatable_read根据spring文档,数据库一共有4个隔离级别read_uncommitread_c
- 计算器项目,要求实现加、减、乘、除、求倒数、求平方根等简单运算。真机调试结果如下图:布局文件:main_activity.xml<?x
- 前言Spring是什么?它是一个应用程序框架,为应用程序的开发提供强大的支持,例如对事务处理和持久化的支持等;它也是一个bean容器,管理b