zoukankan      html  css  js  c++  java
  • Spring+Quartz

    追新,都使用了最新的版本,Spring 4.0.3,Quartz:2.2.1,使用maven构建,父类的pom.xml(里面有几个与示例无关的依赖及配置,没删除):

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.garfield.garserver</groupId>
      <artifactId>garserver</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
      
      <modules>
        <module>service</module>
        <module>entity</module>
      </modules>
      
      <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          <junit.version>4.10</junit.version>
          <spring.version>4.0.3.RELEASE</spring.version>
          <garserver.version>0.0.1-SNAPSHOT</garserver.version>
      </properties>
      
      <dependencyManagement>
          <dependencies>    
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${spring.version}</version>
            </dependency>
                        
          <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            
              <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
                
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
                        
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>
                        
                        
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>
                
                
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring.version}</version>
            </dependency>    
            
            <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>${junit.version}</version>
            </dependency>
            
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>2.2.1</version>
            </dependency>
                        
           </dependencies>
      </dependencyManagement>        
      
      
      <build>
            <defaultGoal>compile</defaultGoal>
    
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <encoding>UTF-8</encoding>  <!-- “编码 GBK 的不可映射字符”问题的解决 -->
                    </configuration>
                </plugin>
                
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.4</version>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <encoding>UTF-8</encoding>
                                <outputDirectory>${project.build.directory}</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>src/main/resources/</directory>
                                        <filtering>true</filtering>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                
                
            </plugins>
            
            
            <resources>
                <!--打包进XML等文件,排除java及版本控制文件  -->
                <resource>
                     <directory>src/main/java</directory>
                    <excludes>
                         <exclude>**/*.java</exclude>
                         <exclude>**/.svn/*</exclude>
                     </excludes>
                 </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.*</include>
                        <include>**/*.*</include>
                    </includes>
                </resource>
            </resources>
    </build>
      
    </project>

    子项目的pom.xml:

    <?xml version="1.0"?>
    <project
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
        xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.garfield.garserver</groupId>
            <artifactId>garserver</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
        
        <artifactId>service</artifactId>
        <name>service</name>
        <url>http://maven.apache.org</url>
    
        
        <dependencies>
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
            </dependency>
            
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.0-beta9</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>2.0-beta9</version>
            </dependency>
            
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
            </dependency>
                        
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </dependency>
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
            </dependency>
                        
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
            </dependency>
                        
                        
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
            </dependency>
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
            </dependency>   
            
            <dependency>
                <groupId>com.garfield.garserver</groupId>
                <artifactId>entity</artifactId>
                <version>${garserver.version}</version>
            </dependency>
            
            
    
        </dependencies>
    
    </project>

    需要注意的是,示例需要spring的spring-context-support和spring-tx。

    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"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
        <!-- 工作的bean -->
        <bean id="myJob" class="com.garfield.quartz.QuartzJob" />
    
        <!-- job的配置开始 -->
        <bean id="myJobDetail"
            class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject">
                <ref bean="myJob" />
            </property>
            <property name="targetMethod">
                <value>work</value>
            </property>
        </bean>
        <!-- job的配置结束 -->
    
    
        <!-- 调度的配置开始 -->
        <bean id="crontestJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <property name="jobDetail">
                <ref bean="myJobDetail" />
            </property>
            <property name="cronExpression">
                <value>10 0/1 * * * ?</value>  <!-- Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。  -->
            </property>
        </bean>
        <!-- 调度的配置结束 -->
    
    
        <!-- 启动触发器的配置开始 -->
        <bean name="startQuertz" lazy-init="false" autowire="no"
            class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
                <list>
                    <ref bean="crontestJobTrigger" />
    
                </list>
            </property>
        </bean>
        <!-- 启动触发器的配置结束 -->
    
    
    </beans>

    Quartz的类:

    package com.garfield.quartz;
    
    import java.util.Date;
    import java.util.Scanner;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class QuartzJob{
        
        private static String[] configLocations = new String[] { "com/garfield/config/servicebeans.xml" };
        
        public void work()
        {
            System.out.println("Quartz的任务调度!!!"+(new Date()).toString());
        }
    
        /**
         * @param args
         */
        public static void main(String[] args)
        {
            System.out.println("Test start.");
            ApplicationContext ctx=new ClassPathXmlApplicationContext(configLocations);
            //如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
            QuartzJob qj=(QuartzJob)ctx.getBean("myJob");
            //qj.work();
            System.out.println("请输入信息:");
            Scanner input=new Scanner(System.in);
            int x=input.nextInt();
            System.out.println(x);
            System.out.print("Test end..");
            
    
        }
    
    }

    在这里,为了测试方便,将启动写在了main中,为了不使main退出,使用了一个无实际意义的等待读取输入,只是为了使程序运行不退出,好了,运行这个程序,Quartz可以正常工作了!

     
  • 相关阅读:
    3.数据库分类
    2.Oracle数据库安装教程
    1.Oracle数据库简介
    MySQL最全存储引擎、索引使用及SQL优化的实践
    大数据各个工具随笔
    初入Shell
    第4章 DDL数据定义
    第3章 Hive数据类型
    第2章 Hive安装
    MySQL 创建数据库
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/3731782.html
Copyright © 2011-2022 走看看