spring初始化配置文件

来源:互联网 发布:淘宝网店编辑岗位说明 编辑:程序博客网 时间:2024/06/18 15:53
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringManager {

    private static ClassPathXmlApplicationContext context = null;
    
    static{
        init();
    }
    /**
     *
     */
    public static synchronized void init(){
        if(context==null){
          context = new ClassPathXmlApplicationContext("conf/SpringContext.xml");
        }
    }
    
    public Object getBean(String beanName){
        return context.getBean(beanName);
    }
}

<?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
           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd">

    <!-- ========================= RESOURCE DEFINITIONS ========================= -->
     <!--
    <jee:jndi-lookup id="dataSource" jndi-name="java:itv" />
    -->
    <bean id="dataSource_aaa" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@172.21.11.142:1521:corac"/>
        <property name="username" value="gd_aaa"/>
        <property name="password" value="cxxx"/>
        <property name="initialSize" value="5" />
        <property name="maxActive" value="100"/>
        <property name="maxIdle" value="30" />
        <property name="maxWait" value="1000" />
        <property name="poolPreparedStatements" value="true"/>
        <property name="defaultAutoCommit" value="true" />
        <property name="removeAbandoned" value="true" />
        <property name="removeAbandonedTimeout" value="5" />
    </bean>
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
          <ref bean="dataSource_aaa"/>
        </property>
    </bean>
    <bean id="sqlMapClient_aaa"
        class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="configLocation" value="classpath:conf/sql-map-config.xml" />
        <property name="dataSource" ref="dataSource_aaa" />
    </bean>
    <bean id="baseTransactionProxy" abstract="true"
        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
            <ref local="transactionManager" />
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="search*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="count*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="save*">PROPAGATION_REQUIRED</prop>
                <prop key="add*">PROPAGATION_REQUIRED</prop>
                <prop key="create*">PROPAGATION_REQUIRED</prop>
                <prop key="insert*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="modify*">PROPAGATION_REQUIRED</prop>
                <prop key="delete*">PROPAGATION_REQUIRED</prop>
                <prop key="shift*">PROPAGATION_REQUIRED</prop>
                <prop key="del*">PROPAGATION_REQUIRED</prop>
                <prop key="remove*">PROPAGATION_REQUIRED</prop>
                <prop key="upload*">PROPAGATION_REQUIRED</prop>
                <prop key="purchase*">PROPAGATION_REQUIRED</prop>
                <prop key="cancel*">PROPAGATION_REQUIRED</prop>
                <prop key="do*">PROPAGATION_REQUIRED</prop>
                <prop key="*Delete">PROPAGATION_REQUIRED</prop>
                <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
            </props>
        </property>
    </bean>
   <import resource="SpringTask.xml" />
   <!--提取数据时下面的XML 注释  -->
   <import resource="SpringJob.xml" />  
   <import resource="SpringTimer.xml" />  
   <import resource="SpringTriger.xml" />  
</beans>

SpringTask.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>

    <bean id="orderTaskRun" class="com.coship.report.task.BaseReportRunTask">
        <property name="sqlMapClient">
            <ref bean="sqlMapClient_aaa" />
        </property>
        <!-- Ftp properties -->
        <property name="ftpIp">
            <value>10.9.216.3</value>
        </property>
        <property name="ftpPort">
            <value>21</value>
        </property>
        <property name="ftpUser">
            <value>root</value>
        </property>
        <property name="ftpPassword">
            <value>coship</value>
        </property>
        <property name="ftpPath">
            <value>/home/report</value>
        </property>
        <property name="sqlId">
            <value>orderTask</value>
        </property>
        <property name="perPagerRows">
            <value>10000</value>
        </property>
        <property name="localTmpFilePath">
            <value>/tmp/</value>
        </property>
        <property name="writeColumns">
            <value>SUB_ID,USER_CODE,SMARTCARD_ID,SUBSCRIBE_TIME,SUBSCRIBE_DATE,SERVICE_CODE,REAL_PRICE,ORDER_TYPE,RESOURCE_ID,GOODS_CODE,PRODOFFERING_CODE,ENABLE_TIME,DISABLE_TIME,validTime,UNSUBSCRIBE_TIME</value>
        </property>
        <property name="fileMaxRows">
            <value>50000</value>
        </property>
        <property name="moduleName">
            <value>orderTask</value>
        </property>
        <property name="applicationName">
            <value>dhm</value>
        </property>
        <property name="beforePrefix">
            <value></value>
        </property>
        <property name="afterPrefix">
            <value></value>
        </property>
        <property name="columnPrefix">
            <value>],[</value>
        </property>
    </bean>

    
</beans>

SpringJob.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>    
      
      <bean id="orderJob"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
          <ref bean="orderTask" />
        </property>
        <property name="targetMethod">
          <value>run</value>
        </property>
      </bean>

</beans>

SpringTimer.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>    

 <!-- 这种配置可以精确几点执行定时任务 -->
  <!-- 一个cron表达式有到少6个(也可能是7个)由空格分隔的时间元素.从左到右,这些元素的定义如下:   
    1.秒(0-59)   
    2.分钟(0-59)   
    3.小时(0-23)   
    4.月份中的是期(1-31)   
    5.月份(1-12或SUN-DEC)   
    6.星期中的日期(1-7或SUN-SAT)   
    7.年份(1970-2099)    
    例子:   
    0 0 10,14,16 * * ? 每天上午10点,下午2点和下午4点   
    0 0,15,30,45 * 1-10 * ? 每月前10天每隔15分钟   
    30 0 0 1 1 ? 2012 在2012年1月1日午夜过30秒时   
    0 0 8-5 ? * MON-FRI 每个工作日的工作时间    
    - 区间   
    * 通配符   
    ? 你不想设置那个字段   
  -->      
 
      <bean id="orderTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
          <ref bean="orderJob"></ref>
        </property>
        <property name="cronExpression">
            <value>0 10 23 * * ?</value>
        </property>
      </bean>
    
    <bean id="EpgByColumnCountTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="EpgByColumnCountJob"/>
        <property name="cronExpression" value="0 30 0 * * ?"/>
    </bean>
            
</beans>

SpringTriger.xml
  <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
      <list>
        <ref bean="orderTrigger"></ref>
      </list>
    </property>
  </bean>  
 
 sql-map-config.xml
 <?xml version="1.0" encoding="UTF-8"?>      
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
     "http://www.ibatis.com/dtd/sql-map-config-2.dtd">                                                                                                                                                                                 
<sqlMapConfig>     
        <sqlMap resource="/conf/reportForIEPG.xml"/>
</sqlMapConfig>

reportForIEPG.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="report">
    <!-- 订购信息 -->
    <resultMap id="resultOrderInfoMap" class="java.util.HashMap">
        <result property="SUB_ID" column="SUB_ID" />
        <result property="USER_CODE" column="USER_CODE" />
        <result property="SMARTCARD_ID" column="SMARTCARD_ID" />
        <result property="SUBSCRIBE_TIME" column="SUBSCRIBE_TIME" />
        <result property="SUBSCRIBE_DATE" column="SUBSCRIBE_DATE" />
        <result property="SERVICE_CODE" column="SERVICE_CODE" />
        <result property="REAL_PRICE" column="REAL_PRICE" />
        <result property="ORDER_TYPE" column="ORDER_TYPE" />
        <result property="RESOURCE_ID" column="RESOURCE_ID" />
        <result property="GOODS_CODE" column="GOODS_CODE" />
        <result property="PRODOFFERING_CODE" column="PRODOFFERING_CODE" />
        <result property="ENABLE_TIME" column="ENABLE_TIME" />
        <result property="DISABLE_TIME" column="DISABLE_TIME" />
        <result property="validTime" column="VALID_TIME" />
        <result property="UNSUBSCRIBE_TIME" column="UNSUBSCRIBE_TIME" />
    </resultMap>
    <select id="orderTask" resultMap="resultOrderInfoMap">
           <![CDATA[          
              select a.SUB_ID,
              u.USER_CODE,
              u.SMARTCARD_ID,
              a.SUBSCRIBE_TIME,
              to_char(a.SUBSCRIBE_TIME,'YYYY-MM-DD') as SUBSCRIBE_DATE,  
              '' SERVICE_CODE,
              b.REAL_PRICE,
              a.ORDER_TYPE,
              a.RESOURCE_ID,
              g.GOODS_CODE,
              a.PRODOFFERING_CODE,
              to_char(a.ENABLE_TIME,'yyyy-mm-dd hh24:mi:ss') as ENABLE_TIME,
              to_char(a.DISABLE_TIME,'yyyy-mm-dd hh24:mi:ss') as DISABLE_TIME,
            (a.disable_time-a.enable_time)*24*60 as VALID_TIME,
              a.UNSUBSCRIBE_TIME         
         from t_subscription a
         left join t_billing b on a.sub_id = b.sub_id
         left join  t_user u   on   a.USER_ID = u.USER_ID
         left join T_AAA_GOODS g on a.goods_id=g.goods_id
         where                
          a.status='1'
          and a.SUBSCRIBE_TIME < trunc(sysdate)
    ]]>
    </select>
</sqlMap>

0 0
原创粉丝点击