idea2016创建maven管理的web项目,做个spring跟quartz的定时任务

如何在idea中创建一个maven管理的web模块,对于刚开始用idea的人来说还是有点问题的,今天俺就来个demo让大家看下,并且完成spring跟quartz的定时任务demo

首先创建模块之前首先配置好自己开发工具中的maven

1. File->settins   //配置内容跟eclipse中大同小异,这里不做过多阐述

2. 本人就不创建项目了,创建个模块

后面的直接下一步就可以了,太简单了不贴图了

3. maven项目的大体现在已经创建好了,但是还没完,继续看

  当创建成功后我们打开发现main目录下并没有java跟test目录,我们手动创建个java目录,

  

但是此时创建的java目录还没法给里面添加包&类&接口,现在来个项目设置File->Project Structure->Project->Project compiler output 用来设置编译后的class文件存放位置,这个也还可以在File->Project Structure->Module->项目->path来设置编译后的文件路径,后者更靠谱些,这个本人未经实践

这时候编译文件的存放地址算是弄好了,下来设置很重要,少了下面这种图的设置,模块中的java文件没法创建包&类&接口等

有了上面这个我们再回到项目发现就可以在java'文件中创建包了,测试代码在sources旁边可以设置

4. 完整的项目已经弄好了,现在我们给pom.xml中来添加依赖,这里需要注意eclipse中是当把依赖添加进去我们保存的时候就会自动下载相关jar,但是idea不是这样的,idea需要手动执行去下载jar,步骤为:pom.xml->鼠标右击->Maven->Reimport  这时候idea就自动为我们下载jar了

 5. 给项目来个tomcat

    找打   Edit configuration

    

    

    

    

到了这里,tomcat算是部署到项目中了,debug启动测试

截止到目前一个javaee的maven项目已经完全建好了

 

 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

下来我要在此项目中添加个spring跟quartz的控制的定时任务案例

 本案例的定时任务是定时的,时间设置成了死值,要想灵活控制时间请看其他案例

首先web.xml中把spring的xml文件加进去

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath*:application.xml</param-value>
</context-param>
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

然后这里有两个任务类,Job01根Job02


@Component("job1")
public class Job01 extends QuartzJobBean{
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
String message = (String) jobExecutionContext.getJobDetail().getJobDataMap().get("ssss");
System.out.println("我是任务11111");
}
}
--------------------------------------------------------------------------------- 

public class Job02 {
  public void sayHello() {
    System.out.println(
new Date() + " -> Hello, 我是任务 2");
  }
}

最后一个是spring的xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <context:component-scan base-package="*"/>
    <!-- 任务1配置 -->
    <bean id="jobDetail_1" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.wyw.Job01"/>
    </bean>
    <bean id="cronTrigger_1" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail"><ref bean="jobDetail_1" /></property>
        <!-- 每三秒钟执行一次 -->
        <property name="cronExpression"><value>0/3 * * * * ?</value></property>
    </bean>

    <!-- 任务2配置 -->
    <!--<bean name="job2" class="com.wyw.Job02"/>   -->
    <bean id="jobDetail_2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!--执行类-->
        <property name="targetObject"><ref bean="job2" /></property>
        <!--执行类中的方法-->
        <property name="targetMethod"><value>sayHello</value></property>
    </bean>
    <bean id="cronTrigger_2" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail"><ref bean="jobDetail_2" /></property>
        <property name="cronExpression"><value>0/1 * * * * ?</value></property>
    </bean>

    <!-- 总配置 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!-- 添加触发器 -->
        <property name="triggers">
            <list>
                <ref bean="cronTrigger_1" />
                <ref bean="cronTrigger_2" />
            </list>
        </property>
    </bean>
    <!--
            "0 0 12 * * ?" 每天中午12点触发
            "0 15 10 ? * *" 每天上午10:15触发
            "0 15 10 * * ?" 每天上午10:15触发
            "0 15 10 * * ? *" 每天上午10:15触发
            "0 15 10 * * ? 2005" 2005年的每天上午10:15触发
            "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
            "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
            "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
            "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
            "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
            "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
            "0 15 10 15 * ?" 每月15日上午10:15触发
            "0 15 10 L * ?" 每月最后一日的上午10:15触发
            "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
            "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
            "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
            每天早上6点
            0 6 * * *
            每两个小时
            0 */2 * * *
            晚上11点到早上8点之间每两个小时,早上八点
            0 23-7/2,8 * * *
            每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
            0 11 4 * 1-3
            1月1日早上4点
            0 4 1 1 *
    -->
</beans>

 

后续会将定时任务的时间改成可控制的


posted @ 2017-05-10 14:57  青春不打烊  阅读(1670)  评论(0编辑  收藏  举报