spring配置 quartz-config.xml

    <!-- 配置调度程序quartz ,其中配置JobDetail有两种方式-->
    <!-- 使用MethodInvokingJobDetailFactoryBean,任务类可以不实现Job接口,通过targetMethod指定调用方法-->
    <!-- 定义目标bean和bean中的方法 -->
    <bean id="SpringQtzJob" class="com.sky.JobSchedule.Job.JobTest"/>
    <bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="SpringQtzJob"/>
        </property>
        <property name="targetMethod">  <!-- 要执行的方法名称 -->
            <value>helloSky</value>
        </property>
        <property name="arguments" value="11"/>
        <property name="concurrent " value="false"></property >     <!--非并发-->
    </bean>

    <!--  调度触发器  -->
    <bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="SpringQtzJobMethod"></property>
        <property name="cronExpression" value="0/5 * * * * ?"></property>
    </bean>

    <!--  调度工厂  -->
    <bean id="SpringJobSchedulerFactoryBean" lazy-init="true" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="CronTriggerBean"/>
            </list>
        </property>
    </bean>

  

public class JobTest {
    String name;

    public JobTest() {
        System.out.println("Hello, Quartz! ----------------------");
    }

    public void helloSky(int age) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        System.out.println("Hello, " + age + " sky !" + formatter.format(new Date()));
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

  

    public static void main(String[] args) throws SchedulerException {
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:quartz-config.xml");
    }

  

另外一种方式:任务类必须继承QuartzJobBean或者实现Job方法。

<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.mc.bsframe.job.TestJob"></property>
        <property name="durability" value="true"></property>
    </bean>

    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail" />
        <property name="startDelay" value="3000" />
        <property name="repeatInterval" value="2000" />
    </bean>

    <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
    <bean id="DefaultQuartzScheduler" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!-- 管理trigger -->
        <property name="triggers">
            <list>
                <ref bean="simpleTrigger" />
            </list>
        </property>
      <property name="configLocation" value="classpath:quartz.properties" />
</bean>

只持久化jobDetail

<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.sky.JobSchedule.Job.HelloQuartzJob"></property>
        <property name="durability" value="true"></property>
    </bean>

    <bean id="DefaultQuartzScheduler" lazy-init="true" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="jobDetails">
            <list>
                <ref bean="jobDetail" />
            </list>
        </property>
        <property name="configLocation" value="classpath:quartz.properties" />
    </bean>

  

两种方法的说明

使用QuartzJobBean,需要继承。而使用MethodInvokeJobDetailFactoryBean则需要指定targetObject(任务实例)和targetMethod(实例中要执行的方法)

后者优点是无侵入,业务逻辑简单,一目了然,缺点是无法持久化(目前还不太清楚这点!)

从我使用的经验来说,我更推荐的第二种,其中一个很重要的原因就是因为定时任务中注入相关Service的时候,后者可以直接注入,而前者还需要进行Schedular的替换修改。

 

上述配置的SchedulerFactoryBean的Id需要注意的是:

假若需要进行可视化调度管理的话,不可缺的是获取所有的jobDetail等等,这时候需要注意的是,获取过程中,实例化Scheduler时,instanceName会根据quartz.properties来进行获取,没有的话默认“QuartzSchelduer”,会获取数据库中SCHED_NAME一致的数据。

自定义的名字,可以直接保持配置的id和instanceName一致。

或者显示的调用SchedulerFactoryBean:

StdSchedulerFactory sf = new StdSchedulerFactory();
Properties props = new Properties();
props.put("org.quartz.scheduler.instanceName", "你定义的名字");
props.put("org.quartz.threadPool.threadCount", "10");#必填
sf.initialize(props);
scheduler = sf.getScheduler();
System.out.println(scheduler.getSchedulerName());
scheduler.shutdown();

  

添加监听器:在spring-quartz中,监听器:http://www.cnblogs.com/skyLogin/p/6928431.html

<?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.xsd">

    <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.sky.JobSchedule.Job.HelloQuartzJob"></property>
        <property name="durability" value="true"></property>
    </bean>
    <bean id="jobDetail2" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.sky.JobSchedule.Job.JobCron"></property>
        <property name="name" value="test2"></property>
        <property name="durability" value="true"></property>
        <property name="jobDataAsMap">
            <map>
                <entry key="name" value="sky"></entry>
            </map>
        </property>
    </bean>

    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail" />
        <property name="repeatInterval" value="2000" />
    </bean>
    <bean id="jobCountListener" class="com.sky.JobSchedule.Listener.JobCountListener" />
    <!--id-->
    <bean id="DefaultQuartzScheduler" lazy-init="false"  autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!--<property name="autoStartup" value="false"></property>-->
        <property name="jobDetails">
            <list>
                <ref bean="jobDetail" />
                <ref bean="jobDetail2" />
            </list>
        </property>
        <!-- 管理trigger -->
        <property name="triggers">
            <list>
                <ref bean="simpleTrigger" />
            </list>
        </property>
        <property name="configLocation" value="classpath:quartz.properties" />
        <property name="globalJobListeners" ref="jobCountListener"></property>
    </bean>
</beans>

  

quartz启动流程

当服务器启动时,就会装载相关的bean。SchedulerFactoryBean实现了InitializingBean接口,因此在初始化bean的时候,会执行afterPropertiesSet方法,该方法将会调用SchedulerFactory(DirectSchedulerFactory 或者 StdSchedulerFactory,通常用StdSchedulerFactory)创建Scheduler。SchedulerFactory在创建quartzScheduler的过程中,将会读取配置参数,初始化各个组件

  1. ThreadPool:一般是使用SimpleThreadPool,SimpleThreadPool创建了一定数量的WorkerThread实例来使得Job能够在线程中进行处理。WorkerThread是定义在SimpleThreadPool类中的内部类,它实质上就是一个线程。在SimpleThreadPool中有三个list:workers-存放池中所有的线程引用,availWorkers-存放所有空闲的线程,busyWorkers-存放所有工作中的线程;

  2. JobStore:分为存储在内存的RAMJobStore和存储在数据库的JobStoreSupport(包括JobStoreTX和JobStoreCMT两种实现,JobStoreCMT是依赖于容器来进行事务的管理,而JobStoreTX是自己管理事务),若要使用集群要使用JobStoreSupport的方式;

  3. QuartzSchedulerThread:

SchedulerFactoryBean还实现了SmartLifeCycle接口,因此初始化完成后,会执行start()方法,该方法将主要会执行以下的几个动作:

  1. 创建ClusterManager线程并启动线程:该线程用来进行集群故障检测和处理,将在下文详细讨论;
  2. 创建MisfireHandler线程并启动线程:该线程用来进行misfire任务的处理,将在下文详细讨论;
  3. 置QuartzSchedulerThread的paused=false,调度线程才真正开始调度;

转载于:https://www.cnblogs.com/skyLogin/p/6899156.html

运行后报错:"C:\Program Files\Java\jdk-11\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:D:\IntelliJ IDEA 2023.2.5\lib\idea_rt.jar=7344:D:\IntelliJ IDEA 2023.2.5\bin" -Dfile.encoding=UTF-8 -classpath D:\A-work\cas-sso-demo\cas-server\target\classes;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-webapp\6.6.14\cas-server-webapp-6.6.14.war;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jdbc\6.6.14\cas-server-support-jdbc-6.6.14.jar;D:\IDEA\maven\maven_repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;D:\IDEA\maven\maven_repository\javax\xml\ws\jaxws-api\2.3.1\jaxws-api-2.3.1.jar;D:\IDEA\maven\maven_repository\org\glassfish\main\javaee-api\javax.jws\3.1.2.2\javax.jws-3.1.2.2.jar;D:\IDEA\maven\maven_repository\org\glassfish\main\javaee-api\javax.jms\3.1.2.2\javax.jms-3.1.2.2.jar;D:\IDEA\maven\maven_repository\javax\xml\soap\javax.xml.soap-api\1.4.0\javax.xml.soap-api-1.4.0.jar;D:\IDEA\maven\maven_repository\org\glassfish\jaxb\jaxb-runtime\2.3.6\jaxb-runtime-2.3.6.jar;D:\IDEA\maven\maven_repository\com\sun\istack\istack-commons-runtime\4.1.1\istack-commons-runtime-4.1.1.jar;D:\IDEA\maven\maven_repository\io\swagger\core\v3\swagger-annotations\2.2.2\swagger-annotations-2.2.2.jar;D:\IDEA\maven\maven_repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\IDEA\maven\maven_repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\IDEA\maven\maven_repository\com\google\guava\guava\30.1.1-jre\guava-30.1.1-jre.jar;D:\IDEA\maven\maven_repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\IDEA\maven\maven_repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\IDEA\maven\maven_repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\IDEA\maven\maven_repository\org\checkerframework\checker-qual\3.8.0\checker-qual-3.8.0.jar;D:\IDEA\maven\maven_repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;D:\IDEA\maven\maven_repository\de\cronn\reflection-util\2.14.0\reflection-util-2.14.0.jar;D:\IDEA\maven\maven_repository\net\bytebuddy\byte-buddy\1.12.12\byte-buddy-1.12.12.jar;D:\IDEA\maven\maven_repository\org\objenesis\objenesis\3.2\objenesis-3.2.jar;D:\IDEA\maven\maven_repository\org\springmodules\spring-modules-cache\0.8\spring-modules-cache-0.8.jar;D:\IDEA\maven\maven_repository\commons-attributes\commons-attributes-api\2.1\commons-attributes-api-2.1.jar;D:\IDEA\maven\maven_repository\qdox\qdox\1.5\qdox-1.5.jar;D:\IDEA\maven\maven_repository\commons-attributes\commons-attributes-compiler\2.1\commons-attributes-compiler-2.1.jar;D:\IDEA\maven\maven_repository\concurrent\concurrent\1.3.4\concurrent-1.3.4.jar;D:\IDEA\maven\maven_repository\cglib\cglib-nodep\2.1_3\cglib-nodep-2.1_3.jar;D:\IDEA\maven\maven_repository\geronimo-spec\geronimo-spec-jta\1.0.1B-rc4\geronimo-spec-jta-1.0.1B-rc4.jar;D:\IDEA\maven\maven_repository\opensymphony\oscache\2.1.1\oscache-2.1.1.jar;D:\IDEA\maven\maven_repository\oro\oro\2.0.8\oro-2.0.8.jar;D:\IDEA\maven\maven_repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-jexl3\3.2.1\commons-jexl3-3.2.1.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-text\1.10.0\commons-text-1.10.0.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;D:\IDEA\maven\maven_repository\commons-cli\commons-cli\1.5.0\commons-cli-1.5.0.jar;D:\IDEA\maven\maven_repository\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;D:\IDEA\maven\maven_repository\commons-validator\commons-validator\1.7\commons-validator-1.7.jar;D:\IDEA\maven\maven_repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\IDEA\maven\maven_repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\IDEA\maven\maven_repository\org\jooq\jool\0.9.14\jool-0.9.14.jar;D:\IDEA\maven\maven_repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\IDEA\maven\maven_repository\org\apereo\inspektr\inspektr-audit\1.8.21.GA\inspektr-audit-1.8.21.GA.jar;D:\IDEA\maven\maven_repository\org\apereo\inspektr\inspektr-common\1.8.21.GA\inspektr-common-1.8.21.GA.jar;D:\IDEA\maven\maven_repository\org\apereo\inspektr\inspektr-support-spring\1.8.21.GA\inspektr-support-spring-1.8.21.GA.jar;D:\IDEA\maven\maven_repository\org\apereo\service\persondir\person-directory-impl\2.0.13\person-directory-impl-2.0.13.jar;D:\IDEA\maven\maven_repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;D:\IDEA\maven\maven_repository\org\apereo\service\persondir\person-directory-api\2.0.13\person-directory-api-2.0.13.jar;D:\IDEA\maven\maven_repository\com\microsoft\alm\oauth2-useragent\0.11.3\oauth2-useragent-0.11.3.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-aop\5.3.22\spring-aop-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-beans\5.3.22\spring-beans-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-context\5.3.22\spring-context-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-context-support\5.3.22\spring-context-support-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\retry\spring-retry\1.3.3\spring-retry-1.3.3.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-core\5.3.22\spring-core-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-jcl\5.3.22\spring-jcl-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\data\spring-data-commons\2.7.2\spring-data-commons-2.7.2.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-jms\5.3.22\spring-jms-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-messaging\5.3.22\spring-messaging-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-expression\5.3.22\spring-expression-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-jdbc\5.3.22\spring-jdbc-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-orm\5.3.22\spring-orm-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-tx\5.3.22\spring-tx-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-web\5.3.22\spring-web-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-webmvc\5.3.22\spring-webmvc-5.3.22.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\core\jackson-databind\2.13.4\jackson-databind-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\core\jackson-core\2.13.4\jackson-core-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-guava\2.13.4\jackson-datatype-guava-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\core\jackson-annotations\2.13.4\jackson-annotations-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.13.4\jackson-jaxrs-json-provider-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.13.4\jackson-jaxrs-base-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.13.4\jackson-module-jaxb-annotations-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.4\jackson-datatype-jsr310-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.4\jackson-module-parameter-names-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.4\jackson-datatype-jdk8-2.13.4.jar;D:\IDEA\maven\maven_repository\org\hjson\hjson\3.0.1\hjson-3.0.1.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.13.4\jackson-dataformat-yaml-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.13.4\jackson-dataformat-xml-2.13.4.jar;D:\IDEA\maven\maven_repository\org\codehaus\woodstox\stax2-api\4.2.1\stax2-api-4.2.1.jar;D:\IDEA\maven\maven_repository\com\fasterxml\woodstox\woodstox-core\6.3.1\woodstox-core-6.3.1.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\dataformat\jackson-dataformat-properties\2.13.4\jackson-dataformat-properties-2.13.4.jar;D:\IDEA\maven\maven_repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;D:\IDEA\maven\maven_repository\org\apache\httpcomponents\httpcore\4.4.15\httpcore-4.4.15.jar;D:\IDEA\maven\maven_repository\org\quartz-scheduler\quartz\2.3.2\quartz-2.3.2.jar;D:\IDEA\maven\maven_repository\com\mchange\mchange-commons-java\0.2.15\mchange-commons-java-0.2.15.jar;D:\IDEA\maven\maven_repository\org\apache\bval\bval-jsr\2.0.6\bval-jsr-2.0.6.jar;D:\IDEA\maven\maven_repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-jsr223\4.0.4\groovy-jsr223-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-json\4.0.4\groovy-json-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-xml\4.0.4\groovy-xml-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy\4.0.4\groovy-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-datetime\4.0.4\groovy-datetime-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-templates\4.0.4\groovy-templates-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-sql\4.0.4\groovy-sql-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-groovysh\4.0.4\groovy-groovysh-4.0.4.jar;D:\IDEA\maven\maven_repository\jline\jline\2.14.6\jline-2.14.6.jar;D:\IDEA\maven\maven_repository\com\github\ben-manes\caffeine\caffeine\3.1.1\caffeine-3.1.1.jar;D:\IDEA\maven\maven_repository\com\google\errorprone\error_prone_annotations\2.14.0\error_prone_annotations-2.14.0.jar;D:\IDEA\maven\maven_repository\com\github\ben-manes\caffeine\guava\3.1.1\guava-3.1.1.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-starter-bootstrap\3.1.3\spring-cloud-starter-bootstrap-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-starter\3.1.3\spring-cloud-starter-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-commons\3.1.3\spring-cloud-commons-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-context\3.1.3\spring-cloud-context-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-aop\2.7.3\spring-boot-starter-aop-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-web\2.7.3\spring-boot-starter-web-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-autoconfigure\2.7.3\spring-boot-autoconfigure-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot\2.7.3\spring-boot-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-properties-migrator\2.7.3\spring-boot-properties-migrator-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-configuration-metadata\2.7.3\spring-boot-configuration-metadata-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-actuator\2.7.3\spring-boot-starter-actuator-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.7.3\spring-boot-actuator-autoconfigure-2.7.3.jar;D:\IDEA\maven\maven_repository\io\micrometer\micrometer-core\1.9.3\micrometer-core-1.9.3.jar;D:\IDEA\maven\maven_repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;D:\IDEA\maven\maven_repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-validation\2.7.3\spring-boot-starter-validation-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-actuator\2.7.3\spring-boot-actuator-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-core\5.7.3\spring-security-core-5.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-rsa\1.0.11.RELEASE\spring-security-rsa-1.0.11.RELEASE.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-cas\5.7.3\spring-security-cas-5.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-web\5.7.3\spring-security-web-5.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\integration\spring-integration-core\5.5.14\spring-integration-core-5.5.14.jar;D:\IDEA\maven\maven_repository\io\projectreactor\reactor-core\3.4.21\reactor-core-3.4.21.jar;D:\IDEA\maven\maven_repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\IDEA\maven\maven_repository\org\springframework\integration\spring-integration-jmx\5.5.14\spring-integration-jmx-5.5.14.jar;D:\IDEA\maven\maven_repository\org\springframework\webflow\spring-webflow\2.5.1.RELEASE\spring-webflow-2.5.1.RELEASE.jar;D:\IDEA\maven\maven_repository\org\springframework\webflow\spring-binding\2.5.1.RELEASE\spring-binding-2.5.1.RELEASE.jar;D:\IDEA\maven\maven_repository\javax\el\javax.el-api\3.0.0\javax.el-api-3.0.0.jar;D:\IDEA\maven\maven_repository\org\glassfish\web\el-impl\2.2\el-impl-2.2.jar;D:\IDEA\maven\maven_repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;D:\IDEA\maven\maven_repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\IDEA\maven\maven_repository\org\aspectj\aspectjrt\1.9.9.1\aspectjrt-1.9.9.1.jar;D:\IDEA\maven\maven_repository\org\aspectj\aspectjweaver\1.9.9.1\aspectjweaver-1.9.9.1.jar;D:\IDEA\maven\maven_repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-authentication-api\6.6.14\cas-server-core-authentication-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-services\6.6.14\cas-server-core-api-services-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-ticket\6.6.14\cas-server-core-api-ticket-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-authentication-mfa-api\6.6.14\cas-server-core-authentication-mfa-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-configuration-api\6.6.14\cas-server-core-configuration-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\yaml\snakeyaml\1.31\snakeyaml-1.31.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-util-api\6.6.14\cas-server-core-util-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-configuration-model\6.6.14\cas-server-core-api-configuration-model-6.6.14.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-configuration-processor\2.7.3\spring-boot-configuration-processor-2.7.3.jar;D:\IDEA\maven\maven_repository\org\jsoup\jsoup\1.15.3\jsoup-1.15.3.jar;D:\IDEA\maven\maven_repository\org\json\json\20160810\json-20160810.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-mfa\6.6.14\cas-server-core-api-mfa-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-web\6.6.14\cas-server-core-api-web-6.6.14.jar;D:\IDEA\maven\maven_repository\org\bitbucket\b_c\jose4j\0.8.0\jose4j-0.8.0.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-config\5.4.6\pac4j-config-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-javaee\5.4.6\pac4j-javaee-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-http\5.4.6\pac4j-http-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-core\5.4.6\pac4j-core-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\spring-webmvc-pac4j\6.0.3\spring-webmvc-pac4j-6.0.3.jar;D:\IDEA\maven\maven_repository\com\nimbusds\nimbus-jose-jwt\9.24.3\nimbus-jose-jwt-9.24.3.jar;D:\IDEA\maven\maven_repository\com\nimbusds\oauth2-oidc-sdk\9.42\oauth2-oidc-sdk-9.42.jar;D:\IDEA\maven\maven_repository\com\nimbusds\content-type\2.2\content-type-2.2.jar;D:\IDEA\maven\maven_repository\com\nimbusds\lang-tag\1.7\lang-tag-1.7.jar;D:\IDEA\maven\maven_repository\net\minidev\json-smart\2.4.9\json-smart-2.4.9.jar;D:\IDEA\maven\maven_repository\net\minidev\accessors-smart\2.4.9\accessors-smart-2.4.9.jar;D:\IDEA\maven\maven_repository\org\ow2\asm\asm\9.3\asm-9.3.jar;D:\IDEA\maven\maven_repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;D:\IDEA\maven\maven_repository\com\vdurmont\semver4j\3.1.0\semver4j-3.1.0.jar;D:\IDEA\maven\maven_repository\com\github\oshi\oshi-core\6.2.2\oshi-core-6.2.2.jar;D:\IDEA\maven\maven_repository\org\apache\velocity\velocity-engine-core\2.3\velocity-engine-core-2.3.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jdbc-authentication\6.6.14\cas-server-support-jdbc-authentication-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-core\1.9.1\shiro-core-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-lang\1.9.1\shiro-lang-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-cache\1.9.1\shiro-cache-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-crypto-hash\1.9.1\shiro-crypto-hash-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-crypto-core\1.9.1\shiro-crypto-core-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-crypto-cipher\1.9.1\shiro-crypto-cipher-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-config-core\1.9.1\shiro-config-core-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-config-ogdl\1.9.1\shiro-config-ogdl-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-event\1.9.1\shiro-event-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jpa-util\6.6.14\cas-server-support-jpa-util-6.6.14.jar;D:\IDEA\maven\maven_repository\com\zaxxer\HikariCP\5.0.1\HikariCP-5.0.1.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jdbc-drivers\6.6.14\cas-server-support-jdbc-drivers-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api\6.6.14\cas-server-core-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\hsqldb\hsqldb\2.7.0\hsqldb-2.7.0.jar;D:\IDEA\maven\maven_repository\org\postgresql\postgresql\42.5.0\postgresql-42.5.0.jar;D:\IDEA\maven\maven_repository\org\mariadb\jdbc\mariadb-java-client\3.0.7\mariadb-java-client-3.0.7.jar;D:\IDEA\maven\maven_repository\net\sourceforge\jtds\jtds\1.3.1\jtds-1.3.1.jar;D:\IDEA\maven\maven_repository\com\microsoft\sqlserver\mssql-jdbc\10.2.1.jre11\mssql-jdbc-10.2.1.jre11.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\ojdbc10\19.3.0.0\ojdbc10-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\ucp\19.3.0.0\ucp-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\oraclepki\19.3.0.0\oraclepki-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\osdt_cert\19.3.0.0\osdt_cert-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\osdt_core\19.3.0.0\osdt_core-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\simplefan\19.3.0.0\simplefan-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\ons\19.3.0.0\ons-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\h2database\h2\1.4.197\h2-1.4.197.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-redis-ticket-registry\6.6.14\cas-server-support-redis-ticket-registry-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-util\6.6.14\cas-server-core-api-util-6.6.14.jar;D:\IDEA\maven\maven_repository\io\github\classgraph\classgraph\4.8.149\classgraph-4.8.149.jar;D:\IDEA\maven\maven_repository\org\springframework\data\spring-data-redis\2.7.2\spring-data-redis-2.7.2.jar;D:\IDEA\maven\maven_repository\org\springframework\data\spring-data-keyvalue\2.7.2\spring-data-keyvalue-2.7.2.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-oxm\5.3.22\spring-oxm-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\integration\spring-integration-redis\5.5.14\spring-integration-redis-5.5.14.jar;D:\IDEA\maven\maven_repository\io\lettuce\lettuce-core\6.2.0.RELEASE\lettuce-core-6.2.0.RELEASE.jar;D:\IDEA\maven\maven_repository\io\netty\netty-common\4.1.79.Final\netty-common-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-handler\4.1.79.Final\netty-handler-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-resolver\4.1.79.Final\netty-resolver-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-buffer\4.1.79.Final\netty-buffer-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-transport-native-unix-common\4.1.79.Final\netty-transport-native-unix-common-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-codec\4.1.79.Final\netty-codec-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-transport\4.1.79.Final\netty-transport-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-logging\6.6.14\cas-server-core-logging-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-cookie\6.6.14\cas-server-core-api-cookie-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-logging-api\6.6.14\cas-server-core-logging-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-cookie-api\6.6.14\cas-server-core-cookie-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-web-api\6.6.14\cas-server-core-web-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-log4j2\2.7.3\spring-boot-starter-log4j2-2.7.3.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-jul\2.17.2\log4j-jul-2.17.2.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-api\2.18.0\log4j-api-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-core\2.18.0\log4j-core-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-jcl\2.18.0\log4j-jcl-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-web\2.18.0\log4j-web-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-slf4j-impl\2.18.0\log4j-slf4j-impl-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-layout-template-json\2.18.0\log4j-layout-template-json-2.18.0.jar;D:\IDEA\maven\maven_repository\com\lmax\disruptor\3.4.4\disruptor-3.4.4.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-tickets-api\6.6.14\cas-server-core-tickets-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-logout\6.6.14\cas-server-core-api-logout-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services-authentication\6.6.14\cas-server-core-services-authentication-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services\6.6.14\cas-server-core-services-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-audit\6.6.14\cas-server-core-api-audit-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services-api\6.6.14\cas-server-core-services-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services-registry\6.6.14\cas-server-core-services-registry-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-authentication-attributes\6.6.14\cas-server-core-authentication-attributes-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-events-api\6.6.14\cas-server-core-events-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-notifications\6.6.14\cas-server-core-notifications-6.6.14.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-mail\2.7.3\spring-boot-starter-mail-2.7.3.jar;D:\IDEA\maven\maven_repository\com\sun\mail\jakarta.mail\1.6.7\jakarta.mail-1.6.7.jar;D:\IDEA\maven\maven_repository\com\sun\activation\jakarta.activation\1.2.1\jakarta.activation-1.2.1.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-redis-core\6.6.14\cas-server-support-redis-core-6.6.14.jar;D:\IDEA\maven\maven_repository\com\mysql\mysql-connector-j\8.0.33\mysql-connector-j-8.0.33.jar;D:\IDEA\maven\maven_repository\com\google\protobuf\protobuf-java\3.21.9\protobuf-java-3.21.9.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-data-redis\2.7.18\spring-boot-starter-data-redis-2.7.18.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;D:\IDEA\maven\maven_repository\ch\qos\logback\logback-classic\1.2.12\logback-classic-1.2.12.jar;D:\IDEA\maven\maven_repository\ch\qos\logback\logback-core\1.2.12\logback-core-1.2.12.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;D:\IDEA\maven\maven_repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\IDEA\maven\maven_repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.83\tomcat-embed-core-9.0.83.jar;D:\IDEA\maven\maven_repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.83\tomcat-embed-el-9.0.83.jar;D:\IDEA\maven\maven_repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.83\tomcat-embed-websocket-9.0.83.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-configuration\6.6.14\cas-server-core-configuration-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-configuration\6.6.14\cas-server-core-api-configuration-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-authentication\6.6.14\cas-server-core-api-authentication-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-protocol\6.6.14\cas-server-core-api-protocol-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-monitor\6.6.14\cas-server-core-api-monitor-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-webflow\6.6.14\cas-server-core-api-webflow-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-events\6.6.14\cas-server-core-api-events-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-validation\6.6.14\cas-server-core-api-validation-6.6.14.jar;D:\IDEA\maven\maven_repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcpkix-jdk15on\1.70\bcpkix-jdk15on-1.70.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcutil-jdk15on\1.70\bcutil-jdk15on-1.70.jar;D:\IDEA\maven\maven_repository\org\cryptacular\cryptacular\1.2.5\cryptacular-1.2.5.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcprov-jdk18on\1.71\bcprov-jdk18on-1.71.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcprov-jdk15on\1.70\bcprov-jdk15on-1.70.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-crypto\5.7.8\spring-security-crypto-5.7.8.jar;D:\IDEA\maven\maven_repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\IDEA\maven\maven_repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar com.example.casserver.CasServerApplication SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/IDEA/maven/maven_repository/org/apache/logging/log4j/log4j-slf4j-impl/2.18.0/log4j-slf4j-impl-2.18.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/IDEA/maven/maven_repository/ch/qos/logback/logback-classic/1.2.12/logback-classic-1.2.12.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Exception in thread "main" java.lang.ExceptionInInitializerError at com.example.casserver.CasServerApplication.main(CasServerApplication.java:10) Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j at org.apache.logging.slf4j.Log4jLoggerFactory.validateContext(Log4jLoggerFactory.java:60) at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:44) at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:33) at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:53) at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363) at org.apache.commons.logging.LogAdapter$Slf4jAdapter.createLocationAwareLog(LogAdapter.java:130) at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:91) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59) at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:179) ... 1 more Process finished with exit code 1
最新发布
07-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值