Spring 配置事务隔离详解
事务隔离是数据库事务的核心特性之一,用于控制并发操作下的数据一致性,避免脏读、不可重复读、幻读等并发问题,Spring作为企业级应用开发框架,提供了强大的事务管理能力,通过配置事务隔离级别,可灵活控制事务的并发行为,平衡数据一致性与系统性能,本文将详细介绍Spring中事务隔离的配置方法、隔离级别选择及注意事项。
事务隔离级别
事务隔离级别决定了事务在并发环境下对数据访问的可见性,不同级别通过牺牲一致性换取并发性能,常见隔离级别包括:
| 隔离级别 | 定义与特点 | 常见问题 |
|---|---|---|
| READ UNCOMMITTED(未提交读) | 允许读取未提交的事务数据,事务间无锁 | 脏读(读取未提交的数据) |
| READ COMMITTED(提交读) | 只允许读取已提交的事务数据,事务间无锁 | 不可重复读(同一事务中多次读取同一数据结果不一致) |
| REPEATABLE READ(可重复读) | 保证同一事务中多次读取同一数据结果一致,事务间加共享锁 | 幻读(多事务操作同一范围数据时,出现新增数据导致结果不一致) |
| SERIALIZABLE(串行化) | 最高隔离级别,完全隔离,事务间加排他锁 | 性能最低,但避免所有并发问题 |
不同数据库的默认隔离级别不同,例如MySQL默认为
REPEATABLE READ
,Oracle默认为
READ COMMITTED
,选择隔离级别需结合业务需求与并发场景。
Spring事务隔离配置 方式
Spring提供了两种主流配置方式:注解驱动与XML配置,均支持隔离级别设置。
注解驱动配置(推荐)
通过
@Transactional
注解,在方法或类级别配置事务隔离级别,语法如下:
@Transactional(isolation = Isolation.READ_COMMITTED)public void updateData() {// 事务逻辑}
XML配置方式
在Spring配置文件中通过标签配置事务,设置属性。
配置示例
注解方式示例(Service层)
@Servicepublic class OrderService {@Autowiredprivate OrderRepository orderRepo;@Transactional(isolation = Isolation.READ_COMMITTED)public void processOrder(Order order) {// 1. 更新订单状态orderRepo.updateStatus(order.getId(), "PAID");// 2. 减少库存inventoryService.decreaseStock(order.getProductId(), order.getQuantity());}}
XML方式示例(配置事务管理器)
注意事项
常见问题解答
什么是无盘技术?
计算机技术的发展日新月异,几年前还风光无限的486、586计算机现在成了弃之可惜,用之难受的心病,所以如何解决这些旧机器的利用问题成了许多学校面临的实际困难,今天向大家介绍如何利用Win2000终端服务使老计算机恢复利用的方法。 Win2000的终端原理终端服务是Windows2000Server所提供的一个新功能,通过利用现有网卡或加插终端仿真卡,我们可以使得局域网中的所有学生机作为Windows2000Server的仿真终端客户机来使用。 由于所有的应用程序的安装和运行都集中在服务器上,终端客户机只作为一种显示和输入设备,从而在花费极低的情况下使得许多老式系统迅速升级至能够运行Windows2000应用程序的水平。 Win2000终端特点1、提升Win2000终端的处理能力:共享PIII服务器的处理能力,使终端可以运行Photoshop、Office2000等软件。 2、相比Win98/NT无盘站网络速度提高10倍:因服务器与终端间只传送键盘、鼠标及显示信号,故每台终端瞬间仅占用20K网络带宽,所以10M/100M网轻松支持50~100台终端。 3、Win2000终端对硬件要求很低,保证你的硬件终端不用升级。 4、只要将服务器连接打印机,所有学生终端均可共享。 5、只要将服务器通过Modem连接上互联网,所有学生终端均可上网。 6、网络维护简单,应用软件仅需在服务器上一次安装,所有终端均可享用,清除病毒仅需在服务器教师机上一次进行。 终端服务系统规划终端服务系统包括运行终端服务的Win2000Server服务器、客户机和正常的网络连接。 1、终端服务器该网络系统对服务器的硬件配置有很高的要求,一般来说,CPU的主频应在PentiumⅢ733MHz以上,硬盘应选用大容量、高速度硬盘;网卡可采用10/100M自适应快速以太网卡;内存最好在256MB以上。 2、客户机对连入终端服务系统中的客户机要求不是很高,486、586微机或无盘站均可,当然首先应保证服务器和客户机之间有正常的网络连接,目前实施Windows2000终端服务的方法有两种:一种是在客户端加终端仿真卡,另一种就是纯软件方式。 本文就第二种方法进行说明。 系统安装下面,我们将具体介绍利用Win2000Server架设终端服务系统的实际操作过程。 1、Win2000Server中文版的安装Win2000Server的安装,比较方便和快捷,整个安装过程都由系统自动完成,安装时应注意的事项有:(1)安装终端服务的服务器至少应有2GB的空闲硬盘空间。 (2)文件系统应采用NTFS格式。 (3)建议用户将终端服务安装在独立服务器上,而不是在主域控制器上,以减轻服务器负担。 (4)安装时用户要正确设置网卡参数和TCP/IP协议等网络组件,使该计算机与局域网中的其他计算机有正常的网络连接。 (5)在安装Win2000Server时,我们可以选择安装终端服务,只要在选择安装组件时选中“终端服务”和“终端服务授权”即可,也可以在服务器安装完毕之后安装终端服务组件。 (6)如果使用无盘客户端,还应安装NTServer4.0,因为无盘Win2000没有远程启动服务,而NTServer4.0提供了远程启动服务。 2、客户机的安装客户机的安装、调试相比较服务器的安装要麻烦一些,下面就有盘站和无盘站分别说明如何安装。 (1)有盘站的安装假设客户机上已经装有Win95或Win98,并且客户机和服务器有正常的网络连接。 我们可以通过制作“终端服务客户端安装磁盘”来完成安装。 在服务器上顺序点击“开始→程序→管理工具→终端服务客户端生成器”,在打开的“创建安装盘”对话框中选择“用于32位x86Windows的终端服务”,然后将磁盘插入软驱中,单击[确定]即可制作安装磁盘。 “终端服务客户端安装磁盘”建立以后,点击“开始”菜单选择“运行”→输入→选择“继续”安装终端客户服务→确定用户及单位→点击[安装]大按钮开始安装→确定所安装的程序组,开始复制文件到出现请插入第二张磁盘→插入第二张磁盘选择[确定]后继续复制文件至完成。 (2)无盘站的安装需一台教师机安装NTServer4.0,用来控制学生机。 首先进入无盘Win95或DOS6.22,加入TCP/IP协议。 再用一台计算机用来安装Win2000Server服务器版。 假设我们已经建立了基于NT4.0下Win95无盘局域网,而且客户端能够顺利进入无盘Win95,这时可以在无盘Win95上安装“终端服务客户端安装磁盘”(生成方法见上),打开客户短连接管理器,建立新的连接,连接名任意,填上服务器IP地址,用户名任意,密码不加,域名为:“DOMAIN”,连接选项内连接启动设为全屏。 复制建立的图标到启动组里,无盘站每次启动就会自动进入Win2000。 登录终端服务器在客户机上成功安装终端服务客户软件之后,顺序点击“开始→程序→终端服务客户端→终端服务客户端”;随后出现“终端服务客户端”登录窗口,在该窗口中的“服务器”栏内输入服务器名称或服务器的IP地址,在“屏幕区域”栏内选择客户机屏幕显示分辨率,然后点击[连接];连接服务器成功之后,将出现服务器桌面及登录窗口,此时输入“用户名”和“密码”,点击[确定],就可以登录到服务器上了。 这样,我们可以像使用本地资源那样使用服务器资源,也可以像运行本地应用程序那样运行服务器上的应用程序。
什么是灰鸽子木马?和熊猫烧香病毒有什么不同?
一、灰鸽子病毒简介 灰鸽子是国内一款著名后门。 比起前辈冰河、黑洞来,灰鸽子可以说是国内后门的集大成者。 其丰富而强大的功能、灵活多变的操作、良好的隐藏性使其他后门都相形见绌。 客户端简易便捷的操作使刚入门的初学者都能充当黑客。 当使用在合法情况下时,灰鸽子是一款优秀的远程控制软件。 但如果拿它做一些非法的事,灰鸽子就成了很强大的黑客工具。 这就好比火药,用在不同的场合,给人类带来不同的影响。 对灰鸽子完整的介绍也许只有灰鸽子作者本人能够说清楚,在此我们只能进行简要介绍。 灰鸽子客户端和服务端都是采用Delphi编写。 黑客利用客户端程序配置出服务端程序。 可配置的信息主要包括上线类型(如等待连接还是主动连接)、主动连接时使用的公网IP(域名)、连接密码、使用的端口、启动项名称、服务名称,进程隐藏方式,使用的壳,代理,图标等等。 服务端对客户端连接方式有多种,使得处于各种网络环境的用户都可能中毒,包括局域网用户(通过代理上网)、公网用户和ADSL拨号用户等。 下面介绍服务端: 配置出来的服务端文件文件名为G_(这是默认的,当然也可以改变)。 然后黑客利用一切办法诱骗用户运行G_程序。 具体采用什么办法,读者可以充分发挥想象力,这里就不赘述。 G_运行后将自己拷贝到Windows目录下(98/xp下为系统盘的windows目录,2k/NT下为系统盘的Winnt目录),然后再从体内释放G_和G_Server_到windows目录下。 G_、G_和G_Server_三个文件相互配合组成了灰鸽子服务端, G_Server_负责隐藏灰鸽子。 通过截获进程的API调用隐藏灰鸽子的文件、服务的注册表项,甚至是进程中的模块名。 截获的函数主要是用来遍历文件、遍历注册表项和遍历进程模块的一些函数。 所以,有些时候用户感觉种了毒,但仔细检查却又发现不了什么异常。 有些灰鸽子会多释放出一个名为G_的文件用来记录键盘操作。 注意,G_这个名称并不固定,它是可以定制的,比如当定制服务端文件名为时,生成的文件就是、和A_。 Windows目录下的G_文件将自己注册成服务(9X系统写注册表启动项),每次开机都能自动运行,运行后启动G_和G_Server_并自动退出。 G_文件实现后门功能,与控制端客户端进行通信;G_Server_则通过拦截API调用来隐藏病毒。 因此,中毒后,我们看不到病毒文件,也看不到病毒注册的服务项。 随着灰鸽子服务端文件的设置不同,G_Server_有时候附在的进程空间中,有时候则是附在所有进程中。 灰鸽子的作者对于如何逃过杀毒软件的查杀花了很大力气。 由于一些API函数被截获,正常模式下难以遍历到灰鸽子的文件和模块,造成查杀上的困难。 要卸载灰鸽子动态库而且保证系统进程不崩溃也很麻烦,因此造成了近期灰鸽子在互联网上泛滥的局面。 二、灰鸽子的手工检测 由于灰鸽子拦截了API调用,在正常模式下服务端程序文件和它注册的服务项均被隐藏,也就是说你即使设置了“显示所有隐藏文件”也看不到它们。 此外,灰鸽子服务端的文件名也是可以自定义的,这都给手工检测带来了一定的困难。 但是,通过仔细观察我们发现,对于灰鸽子的检测仍然是有规律可循的。 从上面的运行原理分析可以看出,无论自定义的服务器端文件名是什么,一般都会在操作系统的安装目录下生成一个以“_”结尾的文件。 通过这一点,我们可以较为准确手工检测出灰鸽子 服务端。 由于正常模式下灰鸽子会隐藏自身,因此检测灰鸽子的操作一定要在安全模式下进行。 进入安全模式的方法是:启动计算机,在系统进入Windows启动画面前,按下F8键(或者在启动计算机时按住Ctrl键不放),在出现的启动选项菜单中,选择“Safe Mode”或“安全模式”。 1、由于灰鸽子的文件本身具有隐藏属性,因此要设置Windows显示所有文件。 打开“我的电脑”,选择菜单“工具”—》“文件夹选项”,点击“查看”,取消“隐藏受保护的操作系统文件”前的对勾,并在“隐藏文件和文件夹”项中选择“ 显示所有文件和文件夹”,然后点击“确定”。 2、打开Windows的“搜索文件”,文件名称输入“_”,搜索位置选择Windows的安装目录(默认98/xp为C:\windows,2k/NT为C:\Winnt)。 3、经过搜索,我们在Windows目录(不包含子目录)下发现了一个名为Game_的文件。 4、根据灰鸽子原理分析我们知道,如果Game_是灰鸽子的文件,则在操作系统安装目录下还会有和文件。 打开Windows目录,果然有这两个文件,同时还有一个用于记录键盘操作的文件。 经过这几步操作我们基本就可以确定这些文件是灰鸽子 服务端了,下面就可以进行手动清除。 三、灰鸽子的手工清除 经过上面的分析,清除灰鸽子就很容易了。 清除灰鸽子仍然要在安全模式下操作,主要有两步:1、清除灰鸽子的服务;2删除灰鸽子程序文件。 注意:为防止误操作,清除前一定要做好备份。 (一)、清除灰鸽子的服务 注意清除灰鸽子的服务一定要在注册表里完成,对注册表不熟悉的网友请找熟悉的人帮忙操作,清除灰鸽子的服务一定要先备份注册表,或者到纯DOS下将注册表文件更名,然后在去注册表删除灰鸽子的服务。 因为病毒会和EXE文件进行关联 2000/XP系统: 1、打开注册表编辑器(点击“开始”-》“运行”,输入“”,确定。 ),打开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services注册表项。 2、点击菜单“编辑”-》“查找”,“查找目标”输入“”,点击确定,我们就可以找到灰鸽子的服务项(此例为Game_Server,每个人这个服务项名称是不同的)。 3、删除整个Game_Server项。 98/me系统: 在9X下,灰鸽子启动项只有一个,因此清除更为简单。 运行注册表编辑器,打开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run项,我们立即看到名为的一项,将项删除即可。 (二)、删除灰鸽子程序文件 删除灰鸽子程序文件非常简单,只需要在安全模式下删除Windows目录下的、、Game_以及文件,然后重新启动计算机。 至此,灰鸽子VIP 2005 服务端已经被清除干净。 以上介绍的方法适用于我们看到的大部分灰鸽子木马及其变种,然而仍有极少数变种采用此种方法无法检测和清除。 同时,随着灰鸽子新版本的不断推出,作者可能会加入一些新的隐藏方法、防删除手段,手工检测和清除它的难度也会越来越大。 四、防止中灰鸽子病毒需要注意的事项 1. 给系统安装补丁程序。 通过Windows Update安装好系统补丁程序(关键更新、安全更新和Service pack),其中MS04-011、MS04-012、MS04-013、MS03-001、MS03-007、MS03-049、MS04-032等都被病毒广泛利用,是非常必要的补丁程序 2. 给系统管理员帐户设置足够复杂足够强壮的密码,最好能是10位以上,字母+数字+其它符号的组合;也可以禁用/删除一些不使用的帐户 3. 经常更新杀毒软件(病毒库),设置允许的可设置为每天定时自动更新。 安装并合理使用网络防火墙软件,网络防火墙在防病毒过程中也可以起到至关重要的作用,能有效地阻挡自来网络的攻击和病毒的入侵。 部分盗版Windows用户不能正常安装补丁,这点也比较无奈,这部分用户不妨通过使用网络防火墙来进行一定防护 4. 关闭一些不需要的服务,条件允许的可关闭没有必要的共享,也包括C$、D$等管理共享。 完全单机的用户可直接关闭Server服务。 . 下载HijackThis扫描系统 下载地址:zww3008汉化版英文版 2. 从HijackThis日志的 O23项可以发现灰鸽子自的服务项 如最近流行的: O23 - Service: SYSTEM$ (SYSTEM$Server) - Unknown owner - C:\WINDOWS\ O23 - Service: Network Connections Manager (NetConMan) - Unknown owner - C:\WINDOWS\ O23 - Service: winServer - Unknown owner - C:\WINDOWS\ O23 - Service: Gray_Pigeon_Server (GrayPigeonServer) - Unknown owner - C:\WINDOWS\G_ 用HijackThis选中上面的O23项,然后选择修复该项或Fix checked 3. 用Killbox删除灰鸽子对应的木马文件 可以从这里下载Killbox直接把文件的路径复制到 Killbox里删除 通常都是下面这样的文件 服务名具体通过HijackThis判断 C:\windows\服务 C:\windows\服务 C:\windows\服务 C:\windows\服务 C:\windows\服务名_ C:\windows\服务名_ 举例说明: C:\WINDOWS\ C:\WINDOWS\ C:\WINDOWS\ C:\WINDOWS\setemy_ C:\WINDOWS\setemy_ 用Killbox删除那些木马文件,由于文件具有隐藏属性,可能无法直接看到,但Killbox能直接删除. 上面的文件不一定全部存在,如果Killbox提示文件不存在或已经删除就没关系了
vb自定义函数可选参数如何设置
定义的时候加上Optional关键字,就可以了要注意的是,可选参数后面如果还有其他的参数,则必须都是可选参数。 另外,定义可选参数,需要定义默认值。 如果调用时,没有指定这个可选参数的值,则使用默认值Public Sub AddItem(ByVal Item As String, Optional ByVal Index As integer=0) Item, IndexEnd Sub




![揭秘!哪个知名公司打造了这款火爆的恋爱应用 (揭秘什么,no_ai_sug:false}],slid:230229505500980,queryid:0x1d9d1647be46734)](https://www.kuidc.com/zdmsl_image/article/20260213025646_26266.jpg)









发表评论