文章首发于个人博客:https://yeyouluo.github.io
-
0 预备知识:cron表达式
见 《5 参考》一节。
1 环境
eclipse mars2 + Maven3.3.9
2 开发步骤
2.1 建立一个maven工程
POM如下:
POM.xml1 <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"> 2 <modelVersion>4.0.0</modelVersion> 3 <groupId>com.yeyouluo.spring.timer</groupId> 4 <artifactId>spring-timer-demo</artifactId> 5 <version>0.0.1-SNAPSHOT</version> 6 7 <properties> 8 <spring.version>4.2.6.RELEASE</spring.version> 9 <slf4j.version>1.7.2</slf4j.version> 10 <log4j.version>1.2.17</log4j.version> 11 </properties> 12 <dependencies> 13 <dependency> 14 <groupId>org.slf4j</groupId> 15 <artifactId>slf4j-api</artifactId> 16 <version>${slf4j.version}</version> 17 </dependency> 18 <dependency> 19 <groupId>org.slf4j</groupId> 20 <artifactId>slf4j-log4j12</artifactId> 21 <version>${slf4j.version}</version> 22 </dependency> 23 <!-- common-logging 实际调用slf4j --> 24 <dependency> 25 <groupId>org.slf4j</groupId> 26 <artifactId>jcl-over-slf4j</artifactId> 27 <version>${slf4j.version}</version> 28 </dependency> 29 <!-- java.util.logging 实际调用slf4j --> 30 <dependency> 31 <groupId>org.slf4j</groupId> 32 <artifactId>jul-to-slf4j</artifactId> 33 <version>${slf4j.version}</version> 34 </dependency> 35 <dependency> 36 <groupId>log4j</groupId> 37 <artifactId>log4j</artifactId> 38 <version>${log4j.version}</version> 39 </dependency> 40 <dependency> 41 <groupId>org.lazyluke</groupId> 42 <artifactId>log4jdbc-remix</artifactId> 43 <version>0.2.7</version> 44 </dependency> 45 <!-- spring核心包 --> 46 <dependency> 47 <groupId>org.springframework</groupId> 48 <artifactId>spring-core</artifactId> 49 <version>${spring.version}</version> 50 </dependency> 51 <dependency> 52 <groupId>org.springframework</groupId> 53 <artifactId>spring-web</artifactId> 54 <version>${spring.version}</version> 55 </dependency> 56 <dependency> 57 <groupId>org.springframework</groupId> 58 <artifactId>spring-tx</artifactId> 59 <version>${spring.version}</version> 60 </dependency> 61 <dependency> 62 <groupId>org.springframework</groupId> 63 <artifactId>spring-jdbc</artifactId> 64 <version>${spring.version}</version> 65 </dependency> 66 <dependency> 67 <groupId>org.springframework</groupId> 68 <artifactId>spring-webmvc</artifactId> 69 <version>${spring.version}</version> 70 </dependency> 71 <dependency> 72 <groupId>org.springframework</groupId> 73 <artifactId>spring-aop</artifactId> 74 <version>${spring.version}</version> 75 </dependency> 76 <dependency> 77 <groupId>org.springframework</groupId> 78 <artifactId>spring-beans</artifactId> 79 <version>${spring.version}</version> 80 </dependency> 81 <dependency> 82 <groupId>org.springframework</groupId> 83 <artifactId>spring-context</artifactId> 84 <version>${spring.version}</version> 85 </dependency> 86 <dependency> 87 <groupId>org.springframework</groupId> 88 <artifactId>spring-context-support</artifactId> 89 <version>${spring.version}</version> 90 </dependency> 91 <dependency> 92 <groupId>org.springframework</groupId> 93 <artifactId>spring-expression</artifactId> 94 <version>${spring.version}</version> 95 </dependency> 96 <dependency> 97 <groupId>org.springframework</groupId> 98 <artifactId>spring-messaging</artifactId> 99 <version>${spring.version}</version> 100 </dependency> 101 <dependency> 102 <groupId>org.springframework.integration</groupId> 103 <artifactId>spring-integration-core</artifactId> 104 <version>4.2.5.RELEASE</version> 105 </dependency> 106 107 </dependencies> 108 109 <packaging>jar</packaging> 110 </project>
pom文件中可能加入了很多没有使用的jar,比如和mybatis、druid、mysql-connector相关的jar,以备后用。
2.2 添加配置文件
①log4j.properties
log4j.xml1 log4j.rootLogger=INFO, Console, RollingFile 2 #Console 3 log4j.appender.Console=org.apache.log4j.ConsoleAppender 4 log4j.appender.Console.layout=org.apache.log4j.PatternLayout 5 log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n 6 7 #RollingFile 8 log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender 9 10 log4j.appender.RollingFile.File=logs/log.log 11 log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout 12 log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
②spring-base.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:task="http://www.springframework.org/schema/task" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd 8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 9 10 <bean id="readDBTask" class="com.yeyouluo.spring.timer.service.ReadDBTask"></bean> 11 12 <task:scheduled-tasks> 13 <task:scheduled ref="readDBTask" method="doSomething" cron="0/3 * * * * ?"/> 14 </task:scheduled-tasks> 15 16 </beans>