<?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-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="fileEncoding" value="utf-8" />
		<property name="locations">
			<list>
				<value>classpath*:xxl-job-executor.properties</value>
			</list>
		</property>
	</bean>

    <!-- ********************************* 基础配置 ********************************* -->

	<!-- 配置01、JobHandler 扫描路径 -->
	<context:component-scan base-package="com.xxl.job.executor.service.jobhandler" />

	<!-- 配置02、执行器 -->
	<bean id="xxlJobExecutor" class="com.xxl.job.core.executor.XxlJobExecutor" init-method="start" destroy-method="destroy" >
		<!-- 执行器IP[选填]，为空则自动获取 -->
		<property name="ip" value="${xxl.job.executor.ip}" />
		<!-- 执行器端口号 -->
		<property name="port" value="${xxl.job.executor.port}" />
        <property name="appName" value="${xxl.job.executor.appname}" />
        <!-- 执行器注册器，默认使用系统提供的 "DbRegistHelper", 推荐将其改为公共的RPC服务 -->
        <property name="registHelper" >
            <!-- DbRegistHelper, 依赖 "XXL-JOB公共数据源" -->
            <bean class="com.xxl.job.core.registry.impl.DbRegistHelper" >
                <!-- XXL-JOB公共数据源 -->
                <property name="dataSource" ref="xxlJobDataSource" />
            </bean>
        </property>
	</bean>

    <!-- ********************************* "GlueFactory" 配置, 仅在启动 "GLUE模式任务" 时才需要, 否则可删除 ********************************* -->

	<!-- 配置03、GlueFactory -->
	<bean id="glueFactory" class="com.xxl.job.core.glue.GlueFactory">
		<!-- GLUE源码加载器，默认使用系统提供的 "DbGlueLoader", 推荐将其改为公共的RPC服务 -->
		<property name="glueLoader" >
            <!-- DbGlueLoader, 依赖 "XXL-JOB公共数据源" -->
			<bean class="com.xxl.job.core.glue.loader.impl.DbGlueLoader" >
				<!-- XXL-JOB公共数据源 -->
				<property name="dataSource" ref="xxlJobDataSource" />
			</bean>
		</property>
	</bean>

    <!-- ********************************* "XXL-JOB公共数据源" 配置, 仅在启动 "DbRegistHelper" 或 "DbGlueLoader" 时才需要, 否则可删除 ********************************* -->

	<!-- 配置04、XXL-JOB公共数据源 -->
	<bean id="xxlJobDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass" value="${xxl.job.db.driverClass}" />
		<property name="jdbcUrl" value="${xxl.job.db.url}" />
		<property name="user" value="${xxl.job.db.user}" />
		<property name="password" value="${xxl.job.db.password}" />
		<property name="initialPoolSize" value="3" />
		<property name="minPoolSize" value="2" />
		<property name="maxPoolSize" value="10" />
		<property name="maxIdleTime" value="60" />
		<property name="acquireRetryDelay" value="1000" />
		<property name="acquireRetryAttempts" value="10" />
		<property name="preferredTestQuery" value="SELECT 1" />
	</bean>


</beans>