`
Maike.first
  • 浏览: 11090 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

spring在服务器驱动初始化quartz任务

 
阅读更多
[/size][size=large][align=center][/align][/size]这个小小的测试我的工作目录如下

package Test;

public class QuartzJob {
  public void work()
      {
            System.out.println("Quartz的任务调度!!!");
         }
[size=large]
[/size][size=x-large]
}
applicationcontext.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:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">


        <!-- 要调用的工作类 -->
        <bean id="quartzJob" class="Test.QuartzJob"></bean>
        <!-- 定义调用对象和调用对象的方法 -->
        <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <!-- 调用的类 -->
            <property name="targetObject">
                <ref bean="quartzJob"/>
            </property>
            <!-- 调用类中的方法 -->
            <property name="targetMethod">
                <value>work</value>
            </property>
        </bean>
        <!-- 定义触发时间 -->
        <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="jobDetail">
                <ref bean="jobtask"/>
            </property>
            <!-- cron表达式 -->
            <property name="cronExpression">
                <!-- 每隔10秒执行一次-->
                <value>0/10 * * * * ?</value>
            </property>
        </bean>
        <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
        <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
                <list>
                    <ref bean="doTime"/>
                </list>
            </property>
        </bean>
  
</beans>
为了要初始化,我们要在web.xml中配置spring.xml信息
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

<!--确定多个配置文件-->
<context-param>
<!-- 参数名为contextConfigLocation-->
<param-name>contextConfigLocation</param-name>
<!--  多个配置文件之间以,隔-->
<param-value>/WEB-INF/applicationcontext.xml</param-value>
</context-param>
<!-- 采用listener创建Applicat工onContext 实例-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
为什么要这么写呢?

spring提供了一个ServletContextListener  接口的实现类ContextLoaderListener,该类可以做为listener使用,他会在创建时自动查找WEB-INF/下的applicationcontext.xml如果只有一个配置文件,并且文件名为applicationcontext.xml时只要加<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
由于contextLoadListener会优先寻找参数为contextConfigLocation。在配置多个配置文件时如下:
<context-param>
<!-- 参数名为contextConfigLocation-->
<param-name>contextConfigLocation</param-name>
<!--  多个配置文件之间以空格隔开,也可以加或者不加,只要加空格就行>
<param-value>/WEB-INF/NewFile.xml /WEB-INF/applicationcontext.xml</param-value>
</context-param>
我们最好设参数名为contextConfigLocation便于查找applicationcontext.xml.
第二:
我们还可以用servlet类 ContextLoaderServlet.该servlet启动时会自动查找web-inf下面的applicationcontext.xml文件。
通常<load-on-startup>参数设得越小越优先启动。所以越小越好

<servlet>
<servlet-name>context</servlet口-arne>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</
servlet-class>
<load-on-startup>l</load-o 口-startup>
</servlet>
2, 使用匹配符

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>

比如说用到Hibernate,则把hibernate相关的配置放在applicationContext-hibernate.xml这一个文件,而一些全局相关的信息则放在applicationContext.xml,其他的配置类似.这样就可以加载了,不必写用空格或是逗号分开!


3, 如果使用struts加载多个spring配置文件.下面这个配置的其实也是contextConfigLocation变量.

struts-config.xml里面加这个
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml,
/WEB-INF/action-servlet.xml,,,,,,,"/>

4,如果是非j2ee应用直接程序加载.

ApplicationContext act = new ClassPathXmlApplicationContext(new String[]{"bean1.xml","bean2.xml"});

BeanDefinitionRegistry reg = new DefaultListableBeanFactory();

XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);

reader.loadBeanDefinitions(new ClassPathResource("bean1.xml"));

reader.loadBeanDefinitions(new ClassPathResource("bean2.xml"));


BeanFactory bf = (BeanFactory)reg;









  • 大小: 8.9 KB
分享到:
评论

相关推荐

    ssm集成quartz完成定时任务

    5. **启动Scheduler**:在项目的初始化阶段,通过Spring的ApplicationContext获取SchedulerFactoryBean的引用,然后调用`start()`方法启动调度器。 6. **部署项目**:将项目打包成WAR文件,部署到Tomcat等Web服务器...

    spring整合quartz

    Spring整合Quartz是一个常见的任务...在Spring整合Quartz的过程中,我们需要配置一个Spring的ApplicationContext,包含对QuartzScheduler的初始化和Job、Trigger的定义。这通常在XML配置文件中完成。例如: ```xml ...

    quartz 在WEB中应用小结

    通常,我们会创建一个初始化监听器(ServletContextListener)来启动Scheduler,并在Web应用关闭时停止Scheduler,以避免资源泄露。同时,我们可以使用Spring框架的Integration来简化配置和管理,将Quartz与Spring的...

    springboot与quartz框架整合

    7. **启动Scheduler**:在SpringBoot的主类或初始化配置中,确保在应用启动时启动Scheduler。可以使用`@PostConstruct`注解的方法来实现。 8. **监控和管理**:Quartz提供了一个Web界面(JMX或自定义的监控页面)来...

    quartz-2.1.3.tar.gz

    Quartz允许开发者安排任务在特定时间执行,无需持续的用户交互或者服务器守护进程。 首先,让我们深入了解一下Quartz的核心概念。Quartz主要由以下几个关键组件构成: 1. **Job**:这是Quartz的核心元素,代表一个...

    spring-context-support源码

    例如,通过`@Autowired`注解可以自动装配所需的bean,而`@PostConstruct`和`@PreDestroy`则用于标记初始化和销毁方法。同时,Spring的事件驱动模型(Event-driven Model)也在这里发挥了作用,允许组件之间以非侵入...

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.6.1. 设置Bean使自动装配失效 3.3.7. 依赖检查 3.3.8. 方法注入 3.3.8.1. Lookup方法注入 3.3.8.2. 自定义方法的替代方案 3.4. bean的作用域 3.4.1. ...

    spring_boot+mybatis开发框架

    Spring Boot 是一款基于 Spring 框架的快速开发工具,它极大地简化了传统 Spring 应用的初始化和配置过程,让开发者能够更加专注于业务逻辑的实现。MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及...

    Spring Boot 入门程序

    1. **创建项目**: 使用 Spring Initializr (https://start.spring.io/) 初始化一个新的 Spring Boot 项目,选择对应的依赖(如 Web 和 JPA)。 2. **主类(Main Class)**: Spring Boot 应用通常有一个标记了 `@...

    Spring 2.0 开发参考手册

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.4. 自定义作用域 ...

    Spring中文帮助文档

    3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的...

    Spring笔记1

    Spring Initializr简化了项目初始化,允许开发者自定义项目属性,如依赖和项目结构,从而快速生成项目模板。 Spring Boot应用通常包含一个主类,该类标记为@SpringBootApplication,包含main方法,作为应用的入口点...

    Spring API

    3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的...

    Spring Boot 是一个用于快速构建基于 Java 的企业级应用程序的开源框架

    4. 任务调度:可以使用Spring Task或Quartz进行定时任务的配置。 5. 消息传递:支持RabbitMQ、Kafka等消息中间件,实现消息驱动的架构。 6. 配置服务器:与Spring Cloud Config Server集成,实现集中式配置管理。 ...

    spring chm文档

    3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.4. 自定义作用域 ...

    spring的jar包源码

    - `ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`:用于加载和初始化Spring配置文件。 2. **Spring表达式语言(spring-expression)**: - Spring Expression Language (SpEL) 是Spring...

    Spring5.0.8RELEASE版本的pdf文档全部

    - **Bean容器**:管理应用对象的生命周期和配置,提供Bean的创建、初始化、装配以及销毁等功能。 - **AOP(面向切面编程)**:提供了声明式事务管理、日志记录等跨切面的功能,增强了代码的可维护性。 - **事件...

    spring boot + maven项目demo

    2. **Maven**:在项目中,Maven 负责管理所有依赖库,包括Spring Boot自身和与MySQL交互所需的JDBC驱动等。通过在`pom.xml`文件中声明依赖,Maven会自动下载并管理这些库,确保版本兼容性,简化了项目的构建流程。 ...

    Spring攻略(第二版 中文高清版).part1

    2.7 自定义Bean初始化和析构 72 2.7.1 问题 72 2.7.2 解决方案 72 2.7.3 工作原理 72 2.8 用Java Config简化XML配置 77 2.8.1 问题 77 2.8.2 解决方案 77 2.8.3 工作原理 77 2.9 使Bean感知容器 ...

    SpringBoot文档+Demo

    1. **创建Spring Boot应用**: 使用`spring init`命令或者在线初始化工具,可以快速创建包含必要依赖的Spring Boot项目。 2. **主程序类(Main Application Class)**: 通常包含`@SpringBootApplication`注解,这是...

Global site tag (gtag.js) - Google Analytics