解决spring+shiro+quartz中出现的问题

本文主要介绍了如何解决Spring、Shiro和Quartz整合时出现的版本冲突问题。通过在pom.xml中排除Shiro默认的Quartz 1.6.1版本,然后引入新的Quartz 2.2.0依赖来解决冲突。同时,针对session验证调度器,将类修改为ExecutorServiceSessionValidationScheduler,并设置了验证间隔时间为1800秒。

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

第一步:解决版本冲突问题

pom.xml中把shiro默认使用的quartz 1.6.1版本排除掉

        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-quartz</artifactId>
            <version>${shiro.version}</version>
            <exclusions>
              <exclusion>
                 <groupId>org.opensymphony.quartz</groupId>
                 <artifactId>quartz</artifactId>
              </exclusion>
           </exclusions>

        </dependency>
          
        <!-- quartz -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.0</version>
        </dependency>

第二步:修改sessionValidationScheduler的类为ExecutorServiceSessionValidationScheduler

spring-shiro.xml 

    <!-- 会话验证调度器 -->
    <!-- 会话验证调度器实现都是直接调用AbstractValidatingSessionManager 的validateSessions方法进行验证。
        如果在会话过期时不想删除过期的会话,可以设置SessionManager的deleteInvalidSessions属性为false ,
        默认是开启的,在会话过期后会调用SessionDAO的delete方法删除会话:如会话时持久化存储的,可以调用此方法进行删除。 -->
    <bean id="sessionValidationScheduler"
class="org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler">
        <property name="interval" value="1800000" />
        <property name="sessionManager" ref="sessionManager" />
    </bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值