Java运行非Web的Springboot项目(测试类或启动主类两种方法)

本文介绍了如何在非Web环境下运行Springboot项目,包括通过Test测试类和启动主类两种方式,并展示了如何设置定时任务实现周期性执行。通过@Test注解测试类运行方法,或直接启动主类通过getBean调用方法。此外,文章还讲解了使用@EnableScheduling开启定时任务,以@Scheduled注解实现每秒打印HelloWorld。最后,提供了详细教程链接,进一步探讨定时任务的高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

如果springboot不是一个Web项目,大家知道,项目启动以后马上就会停止,并且 controller 等各层里面的方法也不会被执行,下面有两种方式可以运行容器里面的方法,测试类或者修改启动主类,都非常简单,几行代码的事情。


一、创建打开一个Springboot项目

使用idea,选择Spring Initializr进行创建

在这里插入图片描述

next,这一步不要勾选 Spring Web 依赖,不然就是个 Web 项目了

在这里插入图片描述

完成以后大家发现,已经为我们创建好了 测试类,那我们就先讲用测试类运行吧
在这里插入图片描述

先写好基本结构,我的这个 demo方法就是一个 System.out.println(“Hello World”);

在这里插入图片描述


二、运行项目

1、Test测试类运行

打开测试类,我的叫 UseToTestApplicationTests,不同项目名字不一样,里面的初始代码是这样的,每个人都一样

在这里插入图片描述

在里面直接 @Autowired 你的 controller 层的文件,在下面 contextLoads 里面调用方法,右键,运行 contextLoads 就可以了。然后输出了 HelloWorld

在这里插入图片描述
在这里插入图片描述

2、启动主类运行

下面使用 UseToTestApplication 启动主类来运行项目

修改代码为下图所示,要获取哪个容器就getBean哪个容器名,右键启动 UseToTestApplication

ConfigurableApplicationContext context = SpringApplication.run(UseToTestApplication.class, args);
        //获取容器DemoController
        DemoController demoController = (DemoController) context.getBean("demoController");
        //DemoController获取成功,调用demo方法
        demoController.demo();

在这里插入图片描述

输出 HelloWorld

在这里插入图片描述


三、持续运行不停止(定时任务、自动执行)

如果想要让项目不停止,一直打印HelloWorld,可以在启动类 UseToTestApplication 上添加注解 @EnableScheduling ,意思为开启定时任务,这个时候启动类就不能修改成上面的getBean那样了,要改回原来的样子

然后在 controller 层的DemoControlelr里面加上注解 @Component 可以确保这个类会被定时任务扫描到,然后在下面的 demo 方法上加上 @Scheduled(fixedRate = 3000),意思为每1000毫秒执行一次 demo 方法

在这里插入图片描述
在这里插入图片描述

启动主类,运行结果,每1秒打印一个 HelloWorld ,永不停止
在这里插入图片描述


总结

如果需要更详细的定时任务的操作,我的另一篇文章有详解,可以定制逻辑更复杂的定时任务

传送门:Java实现非Web项目的Springboot定时任务(每3秒自动执行一次)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁华尽头满是殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值