applicationContext、quartzConfig配置-阿里云开发者社区

开发者社区> 沉默王二> 正文

applicationContext、quartzConfig配置

简介: applicationContext、quartzConfig配置
+关注继续查看

使用spring+mybatis+mysql的框架构建Java项目已经有段时间了,通过学习和总结对于applicationContext.xml文件以及自动化任务quartzConfig.xml文件有了很多认识,那么我想把自己的末学浅见记录下来,给有需要的朋友一点点帮助。

Java项目


applicationContext.xml配置项中包含了 引入jdbc配置文件、创建jdbc数据源、quartz等,见以下内容

<?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:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:jdbc="http://www.springframework.org/schema/jdbc"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="

    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd

    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

    http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd

    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

    http://www.springframework.org/schema/task  

    http://www.springframework.org/schema/task/spring-task-3.1.xsd ">


<!-- 引入jdbc配置文件 -->

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

       <property name="locations">

           <value>conf/jdbc.properties</value>

       </property>

   </bean>


<!--创建jdbc数据源 -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

 <property name="driverClassName" value="${driver}"></property>

 <!-- 加上utf8的编码方式后,项目在向数据库存放数据时会转码为utf8,获取数据时同样会最后转为utf8,这样就会防止编码不一致的时候出现乱码 -->

 <property name="url" value="${url}?useUnicode=true&characterEncoding=utf8&"></property>

 <property name="username" value="${username}"></property>

 <property name="password" value="${password}"></property>

 

 <!-- 初始化连接数 -->

 <property name="initialSize" value="10"></property>

 <!-- 最大连接数量 -->

 <property name="maxActive" value="100"></property>

 <!-- 最大空闲数量 -->

 <property name="maxIdle" value="20"></property>

 <!-- 最小空闲数量 -->

 <property name="minIdle" value="5"></property>

 <!-- 超时等待时间 -->

 <property name="maxWait" value="60000"></property>

 

 <!-- 开启池的prepared statement 池功能 -->

 <property name="poolPreparedStatements" value="true"></property>

 <!-- statement池能够同时分配的打开的statements的最大数量 -->

 <property name="maxOpenPreparedStatements" value="5"></property>

 

 <!-- 以下两个元素要一起使用,作用是为每次使用sqlsession的connection时进行验证,防止连接失效出现错误 -->

 <property name="testOnBorrow" value="true" />

 <property name="validationQuery">

  <value>select 1 from DUAL</value>

 </property>

</bean>


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

 <!--实体类-->

 <property name="typeAliasesPackage" value="com.database.entity" />

 <property name="dataSource" ref="dataSource" />

</bean>


<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

       <property name="dataSource" ref="dataSource" />

   </bean>

   

   <!--

    1.该元素除了替代annotation-config元素告诉spring我们使用注解的方式自动装配外,还允许spring自动检测bean和定义bean

    2.base-package标识了该元素所扫描的包

    3.include-filter过滤出expression所匹配的类

   -->

   <context:component-scan base-package="com.honzh.socket">

    <context:include-filter type="regex" expression=".biz.*"/>

    <context:include-filter type="regex" expression=".service.*"/>

   </context:component-scan>

   

<!--定义注解驱动的事务,该元素告诉spring检查上下文中所有的bean并查找transactional注解的bean,不管是类级别还是方法级别-->

   <tx:annotation-driven/>

   

<!--mybatis-spring提供的类,将mapper接口生成代理注入到spring中-->

   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

       <property name="basePackage" value="com.honbase.mapper" />

   </bean>

   

<!-- 定义quartz专属的工作类 -->

<bean id="systemService" class="com.hoess.service.SystemService"></bean>


<!-- 导入quartz的定时任务 -->

<import resource="quartzConfig.xml" />

</beans>

上面我把注意点都通过注释写了出来,下面是定时quartzConfig.xml任务的配置,见以下内容

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"

xsi:schemaLocation="http://www.springframework.org/schema/beans

      http://www.springframework.org/schema/beans/spring-beans.xsd

      http://www.springframework.org/schema/tx

      http://www.springframework.org/schema/tx/spring-tx.xsd

      http://www.springframework.org/schema/context

      http://www.springframework.org/schema/context/spring-context.xsd

      http://www.springframework.org/schema/aop

      http://www.springframework.org/schema/aop/spring-aop.xsd">

   <!-- 定时任务Quartz配置 -->

<!-- 开盘 -->

   <bean id="open" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

    <property name="targetObject">

        <ref bean="systemService"/>

    </property>

    <property name="targetMethod">

        <value>open</value>

    </property>

    <property name="concurrent">

           <value>false</value>

       </property>

   </bean>

   

   <bean id="openTime" class="org.springframework.scheduling.quartz.CronTriggerBean">

       <property name="jobDetail">

          <ref bean="open"/>

       </property>

       <property name="cronExpression">

            <value>0 0 19 * * ?</value>

       </property>

   </bean>

<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

       <property name="triggers">

           <list>

               <ref bean="openTime"/>

        </list>

       </property>

   </bean>

</beans>

以上内容我就不加注释了,比较容易理解,然后是对应SystemService类的开盘执行方法

// 开盘

public void open() {

 logger.info("--------------------开盘------------------------");

}

Java web项目


只有一个点不相同,我只把他列出来

<!-- 引入jdbc配置文件 -->

<context:property-placeholder location="classpath:jdbc.properties" />

导入的jdbc文件方式不一样,这种是spring最基本的外部文件导入方式,通过在类路径的src根目录找出jdbc配置。


总结:这些配置不是经常需要变动,一个项目只需要配置一次就够了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringMVC之application-context.xml,了解数据库相关配置
SpringMVC之application-context.xml,了解数据库相关配置
8 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10076 0
Power Apps配置安全角色和对象权限
Power Apps配置安全角色和对象权限
6 0
【spring boot】配置文件 application.properties 属性解析
1.JPA  hibernate命名策略  完整命名策略 ,查看:http://www.cnblogs.com/sxdcgaq8080/p/7910474.html     2.hibernate的DDL执行策略 spring.
891 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10883 0
另外,context:component-scan配置可以有多个。
本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能。在Spring Boot应用程序中,我们可以通过Spring Caching来快速搞定数据缓存。
11 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13884 0
applicationContext.xml配置详解
applicationContext.xml配置详解
14 0
sublime text之sublimeCodeIntel 的配置
sublimeCodeIntel 的配置 智能提示插件,这个插件的智能提示功能非常强大,可以自定义提示的内容库,我的Python智能提示设置(配置文件路径为packages\SublimeCodeIntel-master\.codeintel\config)为: 在项目的根目录目录下建立.codeintel/config 但是在windows 需要进入dos 环境下建立。
826 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载