Spring教程____Spring线程池_ThreadPoolTaskExecutor的配置和使用
来源:互联网 发布:java web文件上传组件 编辑:程序博客网 时间:2024/05/21 20:25
//1.搭建个简单的springmvc框架框架结构
2.applicationContext配置
<?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:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><!-- 加载资源配置文件 --><bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:jdbc.properties</value></list></property></bean> <!-- 使用注解的方式装配置bean --><context:annotation-config /><context:component-scan base-package="com"></context:component-scan><!-- 通过注解,把URL映射到Controller上,该标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --><mvc:annotation-driven /><!-- 配置dbcp数据源 配置dbcp数据源 配置dbcp数据源 配置dbcp数据源 配置dbcp数据源 配置dbcp数据源 配置dbcp数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><!-- 配置事物管理 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- Spring线程池 --><bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"><!-- 核心线程数 --><property name="corePoolSize" value="5" /><!-- 最大线程数 --><property name="maxPoolSize" value="10" /><!-- 队列最大长度 >=mainExecutor.maxSize --><property name="queueCapacity" value="25" /><!-- 线程池维护线程所允许的空闲时间 --><property name="keepAliveSeconds" value="3000" /><!-- 线程池对拒绝任务(无线程可用)的处理策略 ThreadPoolExecutor.CallerRunsPolicy策略 ,调用者的线程会执行该任务,如果执行器已关闭,则丢弃. --><property name="rejectedExecutionHandler"><bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" /></property></bean><!-- springconfigEnd springconfigEnd springconfigEnd springconfigEnd springconfigEnd springconfigEnd springconfigEnd springconfigEnd--></beans>3.spring-servlet的配置
<?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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><!-- 默认的视图解析器 --><bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/pages/" /><property name="suffix" value=".jsp"></property></bean></beans>3.web.xml配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>springmvc</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-context.xml</param-value> </context-param> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping></web-app>
//测试sprng线程池的类
package com.spring.task.controller;/** * @author King 根据姓名查询抢到车票的信息 */public class QueryTicket extends Thread {// 抢票人姓名private String username;//轮序的次数private int loopstep=1;//每次间隔的时间(秒)private int looptime=1;//构造器public QueryTicket(String username, int loopstep, int looptime) {super();this.username = username;this.loopstep = loopstep;this.looptime = looptime;}@Overridepublic void run() {for (int i = 0; i < loopstep; i++) {//执行哪个类的哪个方法System.out.println("sql查询策略(执行3次每次间隔5秒)");System.out.println("_______姓名:"+username+"_第"+(i+1)+"次抢票状态:未抢到");try {Thread.sleep(looptime*1000L);} catch (InterruptedException e) {e.printStackTrace();}}}}
package com.spring.task.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/task")public class ThreadPoolController {@Autowired privateThreadPoolTaskExecutor executor;@RequestMapping("/loopQueryTicket.do")public void loopQueryTicket(){QueryTicket queryTicket=new QueryTicket("zhagnsan", 3, 5);executor.execute(queryTicket);}}
//运行结果
//源码地址:http://pan.baidu.com/s/1o8wr7S2
阅读全文
0 0
- Spring教程____Spring线程池_ThreadPoolTaskExecutor的配置和使用
- Spring教程____Spring简介(核心IOC和AOP)
- Spring教程____Spring简单小列子
- Spring线程池和自定义线程池的使用
- spring线程池配置及使用
- spring线程池配置及使用
- spring线程池的使用
- spring线程池的使用
- spring线程池的使用
- spring线程池的使用
- Dubbo配置问题____spring中dubbo标签报错问题和解决方案
- Spring Boot教程四:使用Druid和监控配置
- Spring线程池配置
- Spring线程池配置
- spring配置线程池
- Spring线程池配置
- Spring线程池配置
- spring线程池配置
- Find a path HDU
- 各种排序算法总结
- ThinkPHP框架安全实现分析
- 配置中心:Spring Cloud Config
- Java学习笔记之IO(六):字节流对中文数据的读写
- Spring教程____Spring线程池_ThreadPoolTaskExecutor的配置和使用
- 正则表达式常用校验
- Gym 101174F Performance Review 线段树合并
- 一个创业公司的API网关落地实践
- Mac 下配置Android NDK 环境变量[附带网盘NDK下载]
- AS3.0中用于网络通信的类总结
- as3 netconnection 例子
- ubuntu ssh 出现问题及解决方案
- 2011年03月31日