1.环境

目前开发的项目使用的spring boot(2.1.4.RELEASE)+ssm

2. 需求

现在有一个数据处理任务的接口,在spring boot项目启动后,可以手动的去启动任务,但是这样比较麻烦,每次项目重新运行都要去通过swagger调用数据处理的接口.所以 现在想在项目启动后就是调用该方法

3. 解决思路

当然spring给我们提供了方法:在SpringBoot中,有两种接口方式实现启动执行,分别是ApplicationRunner和CommandLineRunner,除了可接受参数不同,其他的基本一样.网上有很多例子.就不多说了,作者选用的是实现CommandLineRunner接口,重写了run 方法.

4. 例子

  • controller

这里我自定义一个Person类,并且定义了一个person.properties配置文件,读取其中的值,配置如下:

  • person
  • person.properties

注意:这里涉及到几个注解:

大家有问题可以学习下

  • 自定义类实现CommandLineRunner

5. 问题

这时候以为可以完美解决,但是出现了错误:

竟然出现了空指针异常

6. 解决思路

我再run方法中new 了一个controller 层中的类:

HelloController helloController = new HelloController();

而这个类依赖其他类并且使用了@Autowired注入的Spring Bean.那这就不奇怪了,那这个错误空指针就不为过了,因为使用的是new而不是spring帮我们自动注入的,那肯定会出现这个错误,因此查看了Springboot中new出来的实例和@Autowired注入的区别:那肯定要换成@Autowired注解的方式,交给spring容器去管理.

其实从这个错误中更加认识到什么是spring容器了.

7. 解决方案

问题解决,项目启动时调用了getValue方法.没有出现空指针异常.

项目启动时socket自动启动_spring boot 项目在启动时调用接口相关推荐

  1. docker启动后自动退出_Spring Boot项目启动后如何自动执行逻辑

    1. 前言 不知道你有没有接到这种需求,项目启动后立马执行一些逻辑.比如简单的缓存预热,或者上线后的广播之类等等.如果你使用 Spring Boot 框架的话就可以借助其提供的接口CommandLin ...

  2. asp.mvc 4项目发布文件目录结构_Spring Boot项目搭建与启动

    Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  3. springboot 修改了端口不生效_Spring Boot 项目 Docker 化快速上手

    开篇 服务部署是应用上线前的必需环节.大道至简,如何做到项目简单化.自动化甚至傻瓜式部署是考验DevOps的一大难题.从docker面世到k8s的脱颖而出,有越来越多的开源工具也在帮助开发和运维人员解 ...

  4. dev项目属性按钮是灰色_Spring Boot 中的项目属性配置

    阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了Spring Boot 如何使用 SLF4J 进行日志记 ...

  5. linux部署jar项目报错_Spring boot项目部署linux系统tomcat报错解决办法

    一.问题出现的场景: 一个Spring boot项目,使用log4j打印日志,在windows tomcat中部署正常启动,但是在linux系统中部署到tomcat 中时报了如下的错误:java.io ...

  6. springboot tomcat配置_Spring Boot项目如何同时支持HTTP和HTTPS协议

    本文首发于个人网站:Spring Boot项目如何同时支持HTTP和HTTPS协议 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程 ...

  7. springboot项目层次结构_spring boot项目结构

    项目之初,一般我们会根据团队的构成和项目的需求把技术选型.框架定下来,技术选型框架确定后,在团队成员参与开发之前,项目的一些基础服务和组织架构需要资深的负责人或者团队讨论一起分工完成.这样在开始开发后 ...

  8. springboot jar包部署_Spring Boot项目基于Jar部署和打包详解教程

    目标:将Spring Boot项目使用maven指令打成jar包并运行测试 分析: 需要添加打包组件将项目中的资源.配置.依赖包打到一个jar包中:可以使用maven的package: 部署:java ...

  9. 启动java服务时刷新缓存_Spring java项目对外提供服务和java进程启动时bean,内部缓存加载的先后关系?...

    Spring java项目对外提供服务有这么几种,一种是web服务,譬如tomcat,一种是RPC服务,譬如dubbo,thrift.总的来说就是对外开放某个/些端口,接收请求. Spring工程项目 ...

最新文章

  1. Laravel 底层是如何处理 HTTP 请求的?
  2. Visio绘制功能分解图
  3. zabbix2.4.5自带mysql监控
  4. leetcode-283-移动零
  5. ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程
  6. python递归_python3之递归
  7. 腾讯视频如何多倍速播放视频
  8. 太赞了!性能超越谷歌MobileNet!ECCV2020重磅推出MobileNeXt !
  9. 泛型系列3:获取泛型的类型
  10. android fastboot原理,FastBoot使用一
  11. io.js入门(三)—— 所支持的ES6(下)
  12. iOS开发之注册推送通知权限
  13. 命令行ssh连接服务器
  14. 倍福PLC使用Visualization功能实现可视化界面
  15. Zotero | zotero与endnote题录与pdf文件的完整互转(2)
  16. java 字符串 哈希值_Java 获取字符串Hash值
  17. Java程序员面试笔试宝典-数据库原理(三)
  18. 什么是苹果cms?苹果cms如何安装及使用?
  19. 使用ssh 的ControlMaster实现不用每次ssh都输入密码
  20. 适合送女朋友的情人节礼物?畅销火热的好物分享

热门文章

  1. P2048 [NOI2010]超级钢琴
  2. vscode如何用浏览器预览运行html文件
  3. python基础学习笔记2
  4. 【2006-4】【木偶玩具】
  5. DOM中的outerHTML,innerHTML,outerText,innerText的区别
  6. [收集]Visual C#中调用Windows API
  7. 谷歌体三维捕捉新突破:实现后期任意照明修改
  8. 五种计算机编程语言注定要衰落,牛逼的你怎么看呢???
  9. Fedora 30可能默认启用DNF的best模式
  10. C++中list的使用方法及常用list操作总结