首页 > 其他分享 >spring 实现定时任务(手动配置,不用注解)

spring 实现定时任务(手动配置,不用注解)

时间:2023-09-08 17:11:18浏览次数:42  
标签:www http spring springframework 注解 org 定时

1.情景展示

在java当中实现定时任务,主要有两种。

一种是通过java源码实现,另一种是通过spring框架来实现。

由于我们现在基本上使用的都是spring框架(SpringMVC、SpringBoot),况且,使用spring实现定时任务,代码更加简洁。

那么,如何是想spring来实现呢?

2.具体分析

使用spring实现,具体有两种。

一种是在spring框架中,手动配置定时任务;

另一种是使用注解。(SpringMVC和SpringBoot均可)

3.解决方案

由于本人的项目还是使用手动配置spring,所以,无法通过注解来实现。

只能进行手动配置。

手动配置定时任务

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/task
	http://www.springframework.org/schema/task/spring-task-3.0.xsd"
	>
	
	<description>
        <![CDATA[
		    描述:远程医疗定时任务配置
		    版本:1.0
		    作者:Marydon
		    日期:2023年9月4日10:59:00
		    说明:定时任务需要注入的对象,可以在这个文件当中配置,也是配置到spring-ycyl-bo.xml当中
	    ]]>
	</description>
	
	<!-- 外检:定时任务类 -->
	<bean id="wjJobTasksBean" class="ycyl.web.jobs.WjJobTasks">
    	    <property name="boWJ_CONSULT_INFO" ref="boWJ_CONSULT_INFO" />
    	    <property name="boWJ_PATIENT_INFO" ref="boWJ_PATIENT_INFO" />
    	    <property name="boWJ_PATIENT_DETAILINFO_RESULT" ref="boWJ_PATIENT_DETAILINFO_RESULT" />
        </bean>
    
	<!-- 
		通过task标签,定义定时功能
		在线Cron表达式生成器:https://cron.qqe2.com/
	 -->
	<task:scheduled-tasks>
		<!-- 
			wjJobTasksBean对象的getReport方法
			每10分钟执行一次:0 0/10 * * * ?
		-->
		<task:scheduled ref="wjJobTasksBean" method="getReport" cron="0 0/10 * * * ?"/>
		<!-- 要关闭定时任务,需将task:scheduled-tasks标签删掉 -->
	</task:scheduled-tasks>

</beans>

说明:

为了方便对定时任务管理,我们可以把定时任务单独拉出来,搞成一个独立的XML文件。

xmlns="http://www.springframework.org/schema/beans"对应的值是:http://www.springframework.org/schema/beans和http://www.springframework.org/schema/beans/spring-beans.xsd

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"对应的是:xsi:schemaLocation

xmlns:task="http://www.springframework.org/schema/task"对应的值是: http://www.springframework.org/schema/task和http://www.springframework.org/schema/task/spring-task-3.0.xsd

以上信息,不能省略,必须引用到beans标签里面,否则,启动会报错。

然后,我们再把这个文件引入到spring核心文件当中即可。 

WjJobTasks.java类的getReport()方法就是我需要定时执行的内容。

另外,就是通过手动配置的这种方式,会在项目启动的时候自动生效,不需要我们进行额外的操作。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

标签:www,http,spring,springframework,注解,org,定时
From: https://www.cnblogs.com/Marydon20170307/p/17688102.html

相关文章

  • python flask有像Spring AOP一样 捕获记录操作过程请求和返回
    在PythonFlask中,你可以使用装饰器(decorators)或中间件(middlewares)来实现类似SpringAOP的日志记录功能,以捕获和记录操作过程的请求和返回。一种常见的方法是使用装饰器来包装路由处理函数,在函数执行前后记录相关信息:```pythonfromfunctoolsimportwrapsfromflaskimport......
  • 纯java 实现定时任务的两种方式
    1.情景展示在实际项目开发过程中,往往会存在这样的需求:定时执行某个任务,如何实现?2.具体分析定时任务,其实就是定时调用。在代码中,我们可以通过定时运行某个类的某个方法来实现。具体实现方式,有两种:一种是通过java实现。另一种是借助spring来实现。本文只说java实现方式。......
  • Python 框架(Flask,tornado,fastAPI)Go 的gin框架 Java spring 框架中的性能对比
    使用jmeter进行压测:配置如下: Flask框架:Python代码:fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'Hello,World!'if__name__=='__main__':app.run(port=8080)测试结果: Tornado......
  • SpringBoot中配置文件和配置类实现个性化配置的一点区别
    先说配置文件,以properties文件为例,默认存放静态资源文件夹路径是 "classpath:/META-INF/resources/","classpath:/resources/","classpath:/static/","classpath:/public/"。经过下面配置后,这些默认规则都不再生效。#自定义静态资源文件夹位置spring.web.resources.static-locat......
  • Spring源码分析(九)Spring中Bean的生命周期(上)
    在这篇文章之前,写过了官网上容器扩展点相关的知识,包括FactoryBean,BeanFactoryPostProcessor,BeanPostProcessor,其中BeanPostProcessor还剩一个很重要的知识没有介绍,就是相关的BeanPostProcessor中方法的执行时机。之所以在之前的文章没有写这块内容,主要是涉及到bean的生命周......
  • 自定义配置文件参数在application可以直接识别Not registered via @EnableConfigurati
    自定义配置文件参数在application可以直接识别Notregisteredvia@EnableConfigurationPropertiesormarkedasSpringcomponent看见很多开源项目的配置文件可以直接配置在application.yaml中,自己也想弄一个,怎么弄呢?这是我的demo,你正常ConfigurationProperties会报错Notregi......
  • 为什么 springboot 项目中 使用 lombok 不需要指定版本
    springboot默认管理了lombok的版本依赖,所以不需要指定版本号SpringBoot项目中使用Lombok不需要显式指定Lombok的版本,是因为SpringBoot的父项目(spring-boot-starter-parent)已经为您管理了Lombok的版本。这是通过在SpringBoot的父项目中的dependencyManagement部分指定Lombok的......
  • SpringSecurity中注解讲解
    目录[email protected]@PreAuthorize1.1.1开启注解1.1.2使用注解原生方法1.1.3使用注解自定义方法[email protected]@Secured2其他注解[email protected]@PreFilter3权限表达式1@EnableGlobalMethodSecurity@EnableGlobalMethodSecurity是Spring......
  • springmvc中的json数据转为字符串使用到的jar包,将servlet设置为bean对象
    2023-09-08<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.2</version></dependency>ServletConfigp......
  • springboot实现 伪微信登录
    众所周知,微信扫码登陆的功能,个人网站是无法申请的,我们想在本地测一下微信登录也是无法实现。要实现微信登录,首先你得是一个企业单位,有公章才能申请,申请还要花费300块大洋。如果我们只是想学习和体验一下微信登录,可以自己本地搭建个微型服务模拟一下,过一把瘾也是可以的。如果你是企......