Spring Boot启动时调用自己的非web逻辑
在spring Boot中,有些代码是WEB功能,例如API等,但是有些逻辑是非WEB,启动时就要调用并持续运行的,该如何加载自己的非WEB逻辑呢?
SpringBootApplication类实现CommandLineRunner并覆盖run()方法
@SpringBootApplication public class ZjkApplication implements CommandLineRunner{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // WEB SpringApplication.run(ZjkApplication.class, args); } @Override public void run(String... args) throws Exception { //your logic System.out.println("into zjk run"); } }
使用上面方式启动的SPRING BOOT,即可以运行WEB又可以运行自己的逻辑
总结
以上所述是小编给大家介绍的Spring Boot启动时调用自己的非web逻辑,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
Spring Boot启动过程完全解析(二)
上篇给大家介绍了Spring Boot启动过程完全解析(一),大家可以点击参考下 该说refreshContext(context)了,首先是判断context是否是AbstractApplicationContext派生类的实例,之后调用了强转为AbstractApplicationContext类型并调用它的refresh方法.由于AnnotationConfigEmbeddedWebApplicationContext继承自EmbeddedWebApplicationContext,所以会
-
spring boot启动加载数据原理分析
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求. 为了解决这样的问题,spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现. 创建实现接口 CommandLineRunner 的类,通过@Component注解,就可以实现启动时加载数据项.使用@Order 注解来定义执行顺序. IndexStartupRunner.Java类: import org.springframework.boot.CommandLine
-
Spring Boot启动过程完全解析(一)
之前在排查一个线上问题时,不得不仔细跑了很多遍Spring Boot的代码,于是整理一下,我用的是1.4.3.RELEASE. 首先,普通的入口,这没什么好说的,我就随便贴贴代码了: SpringApplication.run(Application.class, args); --> public static ConfigurableApplicationContext run(Object source, String... args) { return run(new Object[]
-
Spring Boot启动过程(六)之内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动教程详解
StandardEngine[Tomcat].StandardHost[localhost]的启动与StandardEngine不在同一个线程中,它的start: // Start our child containers, if any Container children[] = findChildren(); List<Future<Void>> results = new ArrayList<>(); for (int i = 0; i < childre
-
Spring Boot启动过程全面解析(三)
我已经很精简了,两篇(Spring Boot启动过程(一).spring Boot启动过程(二))依然没写完,接着来. refreshContext之后的方法是afterRefresh,这名字起的真...好.afterRefresh方法内只调用了callRunners一个方法,这个方法从上下文中获取了所有的ApplicationRunner和CommandLineRunner接口的实现类,并执行这些实现类的run方法.例如Spring Batch的JobLauncherCommandLineRu
-
Spring Boot启动端口修改方法
spring boot是个好东西,可以不用容器直接在main方法中启动,而且无需配置文件,方便快速搭建环境.可是当我们要同时启动2个springboot工程时,就会有问题,有可能会因为8080端口被第一个应用占用而导致第二个应用无法启动,这时就需要修改其中一个工程的启动端口. 1.可以通过实现EmbeddedServletContainerCustomizer接口来实现: public class Application extends SpringBootServletInitializer
-
Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动
之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,我用的是默认的Tomcat. private void createEmbeddedServletContainer() { EmbeddedServletContainer localContainer = this.embeddedServletContainer; ServletContext localServletContext = getServ
-
Spring Boot启动过程(五)之Springboot内嵌Tomcat对象的start教程详解
标题和Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动很像,所以特别强调一下,这个是Tomcat对象的. 从TomcatEmbeddedServletContainer的this.tomcat.start()开始,主要是利用LifecycleBase对这一套容器(engine,host,context及wrapper)进行启动并发布诸如configure_start.before_init.after_start的lifecycleEvent事件给相应的监听器(如
-
Spring Boot启动时调用自己的非web逻辑
在spring Boot中,有些代码是WEB功能,例如API等,但是有些逻辑是非WEB,启动时就要调用并持续运行的,该如何加载自己的非WEB逻辑呢? SpringBootApplication类实现CommandLineRunner并覆盖run()方法 @SpringBootApplication public class ZjkApplication implements CommandLineRunner{ /** * @param args */ public static void ma
-
spring boot启动时加载外部配置文件的方法
前言 相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.本文主要给大家介绍了关于spring boot启动时加载外部配置文件的相关内容,下面话不多说了,来随着小编一起学习学习吧. 业务需求: 加载外部配置文件,部署时更改比较方便. 先上代码: @SpringBootApplication public class Application { public static void main(String[] args) throws Exce
-
如何在Spring Boot启动时运行定制的代码
Spring Boot会自动为我们做很多配置,但迟早你需要做一些自定义工作.在本文中,您将学习如何挂钩应用程序引导程序生命周期并在Spring Boot启动时执行代码. 1.执行bean初始化的方法 Spring启动应用程序后运行某些逻辑的最简单方法是将代码作为所选bean引导过程的一部分来执行. 只需创建一个类,将其标记为Spring组件,并将应用程序初始化代码放在带有@PostConstruct注释的方法中.理论上,您可以使用构造函数而不是单独的方法,但将对象的构造与其实际责任分开是一种很好
-
spring boot启动时mybatis报循环依赖的错误(推荐)
自己在做项目时,想使用热部署减少部署时间,于是添加了springboot-devtools 在maven中添加了依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 然后正常的启动项目时发现控制台一直在不停的输出错误,错误如图 不明所以,然后就准备去调
-
SPRING BOOT启动命令参数及源码详析
前言 使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring Boot命令行参数相关的功能及相关源码分析. 命令行参数使用 启动Spring Boot项目时,我们可以通过如下方式传递参数: java -jar xxx.jar --server.port=8081 默认情况下Spring Boot使用8080端口,通过上述参数将其修改为8081端口,而且通
随机推荐
- IIS7.0配置过程中出现HTTP 错误 403.14的解决方法
- 详解ASP.NET数据绑定操作中Repeater控件的用法
- JavaScript 读取图片实例代码
- PHP中的MYSQL常用函数(php下操作数据库必备)
- Java 中ConcurrentHashMap的实现
- javascript 语法基础 想学习js的朋友可以看看
- Java实现文件压缩与解压的示例[zip格式,gzip格式]
- MongoDB快速入门笔记(六)之MongoDB的文档修改操作
- javascript替换已有元素replaceChild()使用介绍
- javascript实现的在当前窗口中漂浮框的代码
- 网线破损导致“网络风暴”
- php实现mysql同步的实现方法
- Serv-U占用IIS的80端口造成冲突导致iis无法运行的解决方法(serv_u6-8版本)
- centos下安装配置phpMyAdmin的方法步骤
- 基于Java Socket实现一个简易在线聊天功能(一)
- Android自动获取短信验证码功能
- 解决PyCharm的Python.exe已经停止工作的问题
- 30秒学会30个超实用Python代码片段【收藏版】
- 解决angular双向绑定无效果,ng-model不能正常显示的问题
- Visual Studio 2019配置OpenCV4.1.1详细图解教程