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"
xmlns:tx="http://www.springframework.org/schema/tx"
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/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-lazy-init="true">
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="${db.driver}"/>
<property name="driverUrl" value="${db.url}"/>
<property name="user" value="${db.user}"/>
<property name="password" value="${db.password}"/>
<property name="alias" value="${db.alias}"/>
<property name="houseKeepingTestSql" value="${db.houseKeepingTestSql}"/>
<property name="maximumConnectionCount" value="${db.maximumConnectionCount}"/>
<property name="minimumConnectionCount" value="${db.minimumConnectionCount}"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<!-- 引用数据源 -->
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="annotatedClasses">
<list>
<value>com.cal.entity.Bonetest</value>
<value>com.cal.entity.Calciumcal</value>
<value>com.cal.entity.Child</value>
<value>com.cal.entity.City</value>
<value>com.cal.entity.District</value>
<value>com.cal.entity.Province</value>
<value>com.cal.entity.Staturetest</value>
<value>com.cal.entity.Userinfo</value>
<value>com.cal.entity.Event21</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="connection.useUnicode">true</prop>
<prop key="connection.characterEncoding">UTF-8</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.jdbc.fetch_size">20</prop>
<prop key="hibernate.query.substitutions">true 1, false 0</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
<prop key="hibernate.cache.use_structured_entries">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path"></prop>
</props>
</property>
</bean>
<!-- 事务配置 -->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 使用annotation 自动注册bean,并检查@Required,@Autowired的属性已被注入 -->
<context:annotation-config/>
<context:component-scan base-package="com.cal" />
<!-- 使用annotation定义事务 -->
<tx:annotation-driven transaction-manager="txManager" />
<!-- 这里是spring 和 quartz 整合 start -->
<bean id="quartzJob" class="com.cal.quartz.Edm" >
<!-- 测试引用 -->
<property name="aaa">
<value>111</value>
</property>
</bean>
<!-- 这里需要 spring-context-support.jar 不然抛找不到这个类异常 -->
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="quartzJob" />
</property>
<property name="targetMethod">
<value>edmSendEmail</value>
</property>
</bean>
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<property name="cronExpression">
<value>00 53 11 * * ? *</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>
<!-- 这里是spring 和 quartz 整合 end -->
</beans>
AppContext 类:
存放servletContext 和 applicationContext 的类,然后在servlet中把两个context传入它的静态属性中,注意: servlet 必须 容器启动时就启动
package com.cal.utils;
import javax.servlet.ServletContext;
import org.springframework.context.ApplicationContext;
public class AppContext {
private final static AppContext instance = new AppContext();
private ServletContext sc;
private ApplicationContext ac;
private AppContext() {
}
public static AppContext getInstance() {
return instance;
}
public synchronized void setServletContext(ServletContext sc) {
this.sc = sc;
}
public ServletContext getServletContext() {
return sc;
}
public synchronized void setApplicationContext(ApplicationContext ac) {
this.ac = ac;
}
public ApplicationContext getApplicationContext() {
return ac;
}
}
AppContextServlet 类:
把两个上下文都存入AppContext类中
package com.cal.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.cal.utils.AppContext;
public class AppContextServlet extends HttpServlet {
/**
* serialVersionUID
*/
private static final long serialVersionUID = -9105924604178324202L;
/**
* Constructor of the object.
*/
public AppContextServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init(ServletConfig config) throws ServletException {
ServletContext servletContext = config.getServletContext();
AppContext.getInstance().setServletContext(servletContext);
WebApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
AppContext.getInstance().setApplicationContext(appContext);
}
}
在容器启动时,把webservice的soap存入 servletContext中
/**
* WebContainerListener.java
*
* Created Date: 2010-7-12
* Last Update: 2010-7-12
*
* Copyright (c) Wunderman. All Rights Reserved.
*/
package com.cal.interceptor;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.cal.common.Constants;
import com.cal.webservice.SendEmail;
import com.cal.webservice.SendEmailSoap;
/**
* @version 1.00
*
* <b>修改历史:</b><br>
* @history 2010/07/12: 初版
* @author mahongmin
* @peer review
*
*
*/
public class WebContainerListener implements ServletContextListener{
/**
* 容器生命周期结束
*/
public void contextDestroyed(ServletContextEvent sce) {
}
/**
* 容器初始化
*/
public void contextInitialized(ServletContextEvent sce) {
createLogFile(sce);
createWSSendMail(sce);
}
private void createWSSendMail(ServletContextEvent sce){
SendEmail service = new SendEmail();
SendEmailSoap soap = service.getSendEmailSoap();
sce.getServletContext().setAttribute(Constants.WSSOAP, soap);
}
/**
*此方法用来在部署项目中创建日志文件
* 如果没有日志文件,则创建
* @param sce
*/
private void createLogFile(ServletContextEvent sce){
String root = sce.getServletContext().getRealPath("");
String separator = File.separator ;
//全部日志
String logName = "log.log" ;
//仅错误日志
String logEName = "error.log" ;
String directoryLog = root + separator + "logs";
String directoryELog = root + separator + "logs";
File fLog = new File(directoryLog , logName) ;
File fELog = new File(directoryELog , logEName) ;
if(!fLog.exists()) {
fLog.getParentFile().mkdirs() ;
try {
fLog.createNewFile() ;
} catch (IOException e) {
e.printStackTrace();
}
}
if(!fELog.exists()) {
fELog.getParentFile().mkdirs() ;
try {
fELog.createNewFile() ;
} catch (IOException e) {
e.printStackTrace();
}
}
System.setProperty("WORKDIR", root);
}
}
在web.xml中加入以下代码,使AppContextServlet在容器启动时就启动
<servlet>
<servlet-name>AppContextServlet</servlet-name>
<servlet-class>com.cal.servlet.AppContextServlet</servlet-class>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
在普通类中使用 servletContext和 applicationContext
这样就可以使用hibernate 中的session了
ApplicationContext context = AppContext.getInstance().getApplicationContext();
SessionFactory sessionFactory = (SessionFactory)context.getBean("sessionFactory");
DataSource dataSource = (DataSource)context.getBean("dataSource");
Connection con = dataSource.getConnection();
Session session = sessionFactory.openSession(con);
Query query = session.createQuery(" SELECT c FROM Event21 c WHERE c.flag = 1 ");
分享到:
相关推荐
3. **定义Job和Trigger**:接下来,定义你需要执行的Job类,并在XML中声明它们。Job是实际执行的任务,而Trigger定义了Job的执行时间。例如: ```xml <bean id="myJob" class="com.example.MyJobClass" /> <bean ...
总的来说,`applicationContext.zip`中的`applicationContext.xml`文件是实现Quartz与Spring集成的关键,通过配置这个文件,我们可以有效地管理和调度应用中的定时任务,从而提高应用的自动化水平和效率。
spring定时任务quartz配置,applicationContext.xml
在Spring配置文件(如`applicationContext.xml`)中,定义`SchedulerFactoryBean`来实例化和配置Quartz Scheduler: ```xml <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz....
总的来说,这个压缩包提供了在.NET 4.0环境中使用Quartz.NET进行任务调度所需的所有组件,同时利用Common.Logging实现灵活的日志记录。这使得开发者能够轻松地创建、管理和监控定时任务,同时也方便了问题排查和系统...
在 Web 应用中使用 Quartz,通常需要在 `web.xml` 文件中配置 `QuartzInitializerServlet`,并提供配置文件(如 `quartz.properties` 或 `quartz-job.xml`)来定义 Triggers 和 JobDetails。 通过以上描述,我们...
总结来说,Quartz Job的配置涉及到创建Job类、编写XML配置文件以及在代码中启动Scheduler。通过这种方式,你可以灵活地管理你的定时任务,并根据业务需求调整执行时间。对于旧版本的Quartz(如1.8.0),虽然可能缺少...
首先,从给出的`applicationContext.xml`配置文件片段来看,Spring使用了`ScheduledTimerTask`和`TimerFactoryBean`来实现定时任务。`ScheduledTimerTask`是一个可调度的任务,它定义了延迟启动时间和执行间隔。在这...
网上找了很久都没有关系Quartz.Net 3.X版本的能过quartz_jobs.xml配置实现调度工作的案例. 把这个小demo分享给大家,.net core2.2环境下的Quartz.Net 3.0.7.0最新版本.
Quartz Job Scheduling Framework.chm
在描述中提到的问题是关于如何在3.x版本中通过`quartz_jobs.xml`配置文件实现作业调度,这在许多教程中可能较少被提及,因为早期版本的Quartz.NET更倾向于使用XML配置,而新版本则倾向于使用代码配置或者混合方式。...
Autofac.Extras.Quartz, Quartz.Net的Autofac集成 Autofac.Extras.Quartz用于 Quartz.Net的Autofac集成包。Autofac.Extras.Quartz 为每个石英作业创建嵌套的litefime作用域。 完成作业执行后释放嵌套作用域。这允许...
NULL 博文链接:https://wilian.iteye.com/blog/1992365
在使用Quartz-Scheduler时,首先需要在项目的`pom.xml`文件中添加对应的依赖。以下是一个示例的依赖配置: ```xml <groupId>org.quartz-scheduler <artifactId>quartz <version>2.2.1 ``` 这个依赖确保了...
有了它,quartz不再抽象。 资源来自于互联网,Chuck Cavaness 著 Unmi(隔叶黄莺) 译 。 主要内容: 1.quartz起步和简单示例 2.Job部署、存储和持久化 3.Cron触发器及相关内容 ...7.工作流中使用Quartz 8.附录:配置参考
- 库文件:包含Quartz库的jar文件,方便引入到项目中使用。 - 文档:关于Quartz的使用指南、API文档或最佳实践说明。 通过这些工具,开发者可以更轻松地利用Quartz实现定时任务,提高系统的自动化程度。同时,理解...
- **库文件**:如`quartz.jar`,这是Quartz的核心库,可以直接引入到项目中使用。 - **构建脚本**:如`build.xml`(Ant)或`pom.xml`(Maven),用于构建和打包Quartz项目。 - **测试用例**:在`test`目录下,可以...
本文将介绍如何使用 Quartz 实现定时执行任务,并配置 web.xml 文件。 Quartz 定时执行任务 Quartz 定时执行任务可以通过使用 CronTrigger 实现,以便于在特定的时间点执行任务。CronTrigger 使用 Cron 表达式来...
这个实例主要探讨如何使用Quartz实现自动化的任务调度,包括自动生成表达式、动态更新XML配置文件以及在Tomcat服务器上实现自动加载。 首先,Quartz的核心在于Job和Trigger。Job是实际执行的任务,而Trigger则定义...