想知道spring事务管理和任务调度的详细配置吗?

分布式定时任务调度实战 目录 1、为什么需要定时任务 2、定时任务调度框架 2.1 单机 2.2 分布 3、xxl-job和elastic-job对比 3.1 支持集群部署方式 3.2 多节点部署任务执行方式 3.3 日志可追溯 3.4 监控告警 3.5 弹性扩容缩容 3.6 支持并行调度 3.7 高可用策略 3.8 失败处理策略 3.9 动态分片策略 3.10 总结和结论 4、xxl-job实践 4.1 下载源码 4.2 执行数据库脚本 4.3 配置调度中心文件 4.4 部署调度中心. 阅读详情

想知道spring事务管理和任务调度的详细配置吗?

1.基本配置 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<? 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:context = "http://www.springframework.org/schema/context" 
xmlns:aop = "http://www.springframework.org/schema/aop" 
xmlns:tx = "http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd 
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 
<!-- 打开Spring的自动扫描机制 --> 
< context:component-scan  base-package = "com.sshdemo" /> 
<!-- 打开aop注解支持 --> 
< aop:aspectj-autoproxy /> 
<!-- 定义数据源Bean,使用C3P0数据源实现 --> 
< bean  id = "dataSource"  class = "com.mchange.v2.c3p0.ComboPooledDataSource" 
destroy-method = "close" > 
<!-- 指定连接数据库的驱动 --> 
< property  name = "driverClass"  value = "com.mysql.jdbc.Driver"  /> 
<!-- 指定连接数据库的URL --> 
< property  name = "jdbcUrl"  value = "jdbc:mysql://localhost/ssh"  /> 
<!-- 指定连接数据库的用户名 --> 
< property  name = "user"  value = "root"  /> 
<!-- 指定连接数据库的密码 --> 
< property  name = "password"  value = "root"  /> 
<!--连接池中保留的最大连接数。Default: 15 --> 
< property  name = "maxPoolSize"  value = "40"  /> 
<!-- 指定连接池的最小连接数 --> 
< property  name = "minPoolSize"  value = "10"  /> 
<!-- 指定连接池的初始化连接数 取值应在minPoolSize与maxPoolSize之间。默认: 3 --> 
< property  name = "initialPoolSize"  value = "5"  /> 
<!-- 解决Mysql中的8小时问题: --> 
<!--最大空闲时间,25000秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> 
< property  name = "maxIdleTime"  value = "25000"  /> 
<!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false --> 
< property  name = "testConnectionOnCheckin"  value = "true"  /> 
<!--每18000秒检查所有连接池中的空闲连接。Default: 0 --> 
< property  name = "idleConnectionTestPeriod"  value = "18000"  /> 
</ bean > 
<!--定义了Hibernate的SessionFactory --> 
< bean  id = "sessionFactory" 
class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" > 
< property  name = "dataSource"  ref = "dataSource"  /> 
<!-- 配置Hibernate的参数 --> 
< property  name = "hibernateProperties" > 
< props > 
<!-- 指定数据库的方言 --> 
< prop  key = "hibernate.dialect" >org.hibernate.dialect.MySQL5InnoDBDialect</ prop > 
< prop  key = "hibernate.show_sql" >true</ prop > 
< prop  key = "hibernate.hbm2ddl.auto" >update</ prop > 
<!-- JDBC执行批量更新语句的大小 清除缓存(定期清除缓存,减小压力 --> 
< prop  key = "hibernate.jdbc.batch_size" >30</ prop > 
</ props > 
</ property > 
< property  name = "mappingResources" > 
<!-- 映射的文件 --> 
< list > 
< value >com/sshdemo/model/Hibernate.hbm.xml</ value > 
</ list > 
</ property >  
</ bean >



<!-- aop拦截 --> 

1
2
3
4
5
6
7
8
9
10
< aop:config > 
< aop:aspect  id = "DemoImp"  ref = "aspectDemoImp" > 
< aop:pointcut  expression = "execution(* com.sshdemo.service.imp.*.*(*))"  id = "myPointCut" /> 
< aop:before  pointcut-ref = "myPointCut"  method = "checkSecurity" /> 
< aop:around  pointcut-ref = "myPointCut"  method = "doLoggInfo" /> 
< aop:after  pointcut-ref = "myPointCut"  method = "doTranscation" /> 
</ aop:aspect >
</ aop:config > 
< bean  id = "aspectDemoImp"  class = "com.sshdemo.aspect.AspectDemoImpl" /> 
</ beans >




2.事务管理 
aop 

<!-- 事务处理 (aop:config)--> 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< bean  id = "transactionManager" 
class = "org.springframework.orm.hibernate3.HibernateTransactionManager" > 
< property  name = "sessionFactory"  ref = "sessionFactory"  /> 
</ bean > 
<!--  采用@Transactional注解方式使用事务 --> 
<!-- <tx:annotation-driven transaction-manager="transactionManager"/> --> 
< tx:advice  id = "txAdvice"  transaction-manager = "transactionManager" > 
< tx:attributes > 
< tx:method  name = "find*"  propagation = "NOT_SUPPORTED"  read-only = "true" /> 
< tx:method  name = "insert*"  propagation = "REQUIRED" /> 
</ tx:attributes > 
</ tx:advice > 
< aop:config  > 
< aop:pointcut  expression = "execution(* com.sshdemo.service.imp.*.*(*))"  id = "txPointCut" /> 
< aop:advisor  advice-ref = "txAdvice"  pointcut-ref = "txPointCut" /> 
</ aop:config >





3.任务调度配置 
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

<!-- QuertZ任务调度 --> 

1
2
3
4
5
6
7
8
9
< bean  id = "myQuertZ"  class = "com.sshdemo.quartZ.MydemoQuartZ" ></ bean > 
< bean  id = "testQuartZ"  class = "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" > 
< property  name = "targetObject" > 
< ref  bean = "myQuertZ" /> 
</ property > 
< property  name = "targetMethod" > 
< value >doRepeatReport</ value > 
</ property > 
</ bean >

 

<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是TestQuartZ, 
即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm--> 

1
2
3
4
5
6
7
8
9
< bean  id = "quertZDemo"  class = "org.springframework.scheduling.quartz.CronTriggerBean" > 
< property  name = "jobDetail" > 
< ref  bean = "testQuartZ" /> 
</ property > 
< property  name = "cronExpression" > 
<!-- 触发时间(表达式) --> 
< value >0/10 * * ? * *</ value > 
</ property > 
</ bean >



<!--管理触发器的总设置,管理我们的触发器列表,可以在bean的list中放置多个触发器。   
    --> 
   

1
2
3
4
5
6
7
8
< bean  autowire = "no"  class = "org.springframework.scheduling.quartz.SchedulerFactoryBean" > 
     < property  name = "triggers" > 
     < list > 
     < ref  bean = "quertZDemo" /> 
     </ list > 
     </ property > 
     </ bean > 
</ beans >


Spring Boot 中使用 @Transactional 注解配置事务管理 下面分别介绍一下的几个属性。 阅读详情

相关推荐

spring 事务管理配置

一般的,我们把事务配在service层,利用service的业务逻辑接口统一的管理。 为什么不用在dao层呢? 因为一个service有可能调用多个dao,而这多个dao有可能相互联系,有时候一个操作需要调用多次数据库,但是这多次调用要么全提交,要么全回滚。  因此,在dao层调用事务理论上说不是一个很明智的选择。应该有业务逻辑层service层负责事务,统一处理。  Spring

不积跬步无以至千里,不积小流无以成江海 1404

XXL-Job分布式任务调度框架-- 调度和执行器集群HA的配置3

为了避免单点故障,任务调度系统通常需要通过集群实现系统高可用由于任务调度系统的特殊性,“调度”和“任务”两个模块需要均支持集群部署,由于职责不同,因此各自集群侧重点也有有所不同。

健康平安的活着的专栏 3521

OpenResty无损升级内嵌nginx版本0DAY漏洞

OpenResty无损升级内嵌nginx版本,nginx

qq1071643762的博客 6902

XXL-JOB:定时任务框架的实战应用与调度方式详解

XXL-JOB是一个轻量级分布式任务调度平台,它采用中心化设计,调度中心负责任务管理、调度,执行器负责任务执行。除此之外,XXL-JOB还支持多种调度模式,比如固定速率执行、Cron表达式等,满足不同业务场景的需求。那我们为什么现在就会使用分布式的调度框架呢?大家来看下面这个图:上面是一个发送优惠券的定时任务如果只是单体项目的话,定时任务执行是不会有任何问题的如果后期业务量较大,单体项目做了集群部署,那集群中每一台服务的代码都是一样的,都会按照规定的时间来执行任务,这样就会造成优惠券重复发放。

小威的博客 3万+

IGBT模块封装中的银烧结技术:为什么特斯拉和比亚迪都在用这种黑科技?

本文深入解析了IGBT模块封装中的银烧结技术,揭示了其作为功率半导体封装工艺关键升级的原因。该技术通过低温烧结形成高熔点、高导热导电的银连接层,显著提升了模块的功率循环寿命、散热能力和高温工作稳定性,这正是特斯拉、比亚迪等行业巨头采用此项黑科技以释放电动汽车电驱系统极致性能的核心所在。

yhn4567890的博客 833

如何在STM32上5分钟搞定nanopb协议传输?附完整代码示例

本文提供了在STM32微控制器上快速集成nanopb协议传输的实战指南。通过详细的步骤,从.proto文件定义、代码生成到STM32CubeIDE项目移植,帮助开发者利用nanopb这一轻量级Protocol Buffers C语言实现,在5分钟内构建高效、跨平台的嵌入式设备通信框架,并附有完整的代码示例。

jwt8token的博客 836

服务器上任务的定时调度

服务器上任务的定时调度。

Kun_112114的博客 831

别再调参了!用Simulink手把手教你搞定FOC电机速度环PI控制器(附模型下载)

本文详细介绍了如何使用Simulink搭建FOC电机速度环PI控制器,通过模最优准则和系统化调试方法,避免传统手动调参的繁琐过程。文章包含从传递函数推导到参数自动整定的完整流程,并提供了实战调试技巧与异常处理指南,帮助工程师快速实现电机控制系统的稳定运行。

weixin_42519985的博客 412

分布式任务调度

一、概述 1、定义 业务场景 - 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 - 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 - 某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。 - 12306会根据车次的不同,设置某几个时间点进行分批放票。 任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力,而是由系统自动去执行任务。 如何实现任务调度? - 多线程方式,结合sleep - JDK提供的API

姬凝霜 1万+

告别轮询!用STM32CubeMX给STM32F030配置ADC多通道+DMA,实测代码分享

本文详细介绍了如何使用STM32CubeMX为STM32F030配置ADC多通道采集与DMA传输,显著提升采集效率。通过实测对比轮询与DMA模式的性能差异,提供完整的代码实现和优化技巧,帮助开发者快速掌握这一高效采集方案。

weixin_42570296的博客 409

zynq-7000学习笔记(八)——USB摄像头图像采集

PC平台:WINDOWS 10 64位 Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4 开发板:Zed Board USB摄像头:罗技 C270(720P) linux源码:2016_R1 一、配置linux,支持UVC       如果是中星微的ZC3XX系列的芯片,则要进到GSPCA把ZC3XX的驱动选上

luotong86的专栏 1万+

Spring 事务管理的详细讲解及使用

文章目录一、 Spring 事务管理简介二、Spring 事务管理器1、Spring 事务管理接口1.1、 PlatformTransactionManager 接口1.2、 TransactionDefinition 接口1.3、 TransactionStatus 接口2、Spring 中包含的事务管理器三、 事务的传播行为四、 Spring 声明式事务管理1、Jar 包依赖2、使用 XML 文件方式实现声明式事务管理2.1、 搭建环境创建项目创建实体类创建持久层创建业务层配置 Spring JDBC2

康康要加油的博客 1万+

如何处理NC数据?(Python和IDL语言实现)

如何处理NC数据?(Python和IDL语言实现) NetCDF(network Common Data Form)网络通用数据格式是一种面向数组型并适于网络共享的数据的描述和编码标准。目前,NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式方便地管理和操作 NetCDF 数据集。(参考自:https://zhuanlan.zhihu.com/p/129351199) 在我看来,nc和hdf有异曲同工之妙,我用的数据以hdf结构为主(HDF:层次文件格式,相当于

zhanglingfeng1的博客 4634

【Spring】Spring的事务管理

该接口是Spring提供平台事务管理器,主要用于管理事务状态事务TransactionStatus getTransaction(TransactionDefinition definition):获取事务的状态信息void commit(TransactionStatus status):用于提交事务void rollback(TransactionStatus status):用于回滚事务该接口并不了解具体实现类,常用如下。

m0_62645012的博客 2067

压缩包密码破解工具ZIP Cracker2.0.1.2 正式版

一款多功能文件密码破解工具,支持ZIP、RAR、Office等主流加密格式,提供CPU/GPU双模式破解。该软件采用黑客风格界面,具备环境自检修复功能,支持实时监控硬件使用率。内置hashcat等专业破解工具,通过拖拽文件即可快速破解,GPU模式速度可达CPU的10-100倍。最新版本优化了中文路径支持,并提升了启动速度。

bfq05234214的博客 480

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

spring-事务管理

(1)有两种方式:编程式事务管理和声明式事务管理(使用)

XiaoWenYJS 1965

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Spring事务管理器配置两种配置方法,使用方法

事务管理器配置两种配置方法,使用方法

Stardust_fantasy的博客 4641

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Spring】— Spring的事务管理

Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。

衍生星球的博客 3318

Spring配置事务管理和简化事务配置

一.使用TransactionProxyFactoryBean创建事务代理(通常事务代理以Service层为目标bean)          PROPAGATION_REQUIRED,-MyCheckedException             PROPAGATION_REQUIRED PROPAGATION_REQU

congcongsuiyue的专栏 3358

记spring事务管理的配置

记录下spring配置类相关注解和设置,了解导入依赖的作用。

m0_59250245的博客 1288

你知道Spring使如何实现事务管理的?

本文介绍了 Spring 如何实现事务管理。通过编程式事务管理和声明式事务管理,开发人员可以轻松地管理和控制事务的行为。编程式事务管理通过编写代码来管理事务的开始、提交和回滚等操作,而声明式事务管理通过配置来管理事务的行为,将事务管理与业务逻辑代码分离。在编程式事务管理中,我们配置了事务管理器,并使用 TransactionTemplate类来执行需要进行事务管理的代码块。通过 TransactionCallback回调接口,我们可以在事务内执行数据库操作,并在出现异常时手动设置事务回滚。

weixin_45701550的博客 973

ajax关键知识点之电子拍卖系统的任务调度、事务管理与远程暴露

本文总结了电子拍卖系统开发中与Ajax相关的三个关键技术点:1) Spring任务调度配置,通过ScheduledTimerTask和TimerFactoryBean实现定时任务管理;2) Spring声明式事务管理,利用tx和aop命名空间自动处理事务;3) DWR框架实现业务逻辑远程暴露,允许前端JavaScript调用后端方法。文章采用通俗类比方式讲解技术原理,并提供了核心知识点表格总结,帮助开发者快速掌握电子拍卖系统中的关键实现技术。

2301_78506709的博客 1068

spring事务管理配置

Spring事务主要有两种配置方式:一种是基于注解配置,另一种是基于配置文件。 1.     注解配置 1)    Spring配置文件 首先需要在spring配置文件当中添加事务管理容器:   再加入事务之前一定要先排除Controller类不被事务扫描装配,此时service还没有进行事务增强处理,得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力),

我是程序猿 8514

事务管理及spring基于注解的声明式事务管理的配置和用法

因为前几天看一个项目文档出现“本系统采用基于Spring的声明式事务控制”,才根据文档和代码了解了一下事务管理的相关知识。这里对自己的学习做个总结。 一:相关概念 1.事务:事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。用来确保数据的完整性和一致性。 2.事务的四个特性:原子性,一系

果子狸要好好活着 7202

Spring事务管理——AOP配置

说明 平时学习Spring很少用到AOP这个功能,不过这个功能对Spring事务管理有一定的作用。发现真正在用的时候自己配环境的情况特别少,都是在别人配好环境的情况下就开始用了。所以更加要记录一下配置环境的过程啊。这里用一个转账实例来说明。 下面是废话,不想看可以跳过。 最近发现进一个月来跟别人无意义的交流变多了,感觉自己说了很多没有用的话,一直在消耗,没有输入。所以这个周末都是尽量不看手机,不跟...

hansmu的博客 753
上一篇: Validform使用教程
下一篇: spring框架之面试
pingdouble
博客等级 码龄15年 325粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值