package com.abin.lee.queue;
import java.util.Queue;
public interface IMakeQueue {
public void addQueue(Object obj);
public boolean hasQueue();
public Object getQueueHeader();
public int queueSize();
public boolean delQueue();
}
package com.abin.lee.queue;
import java.util.Queue;
import java.util.concurrent.LinkedBlockingQueue;
public class MakeQueue implements IMakeQueue{
private static Queue queue=new LinkedBlockingQueue();
public void addQueue(Object obj) {
queue.offer(obj);
}
public boolean hasQueue() {
boolean flag=false;
if(queue.isEmpty()){
flag=true;
}
return flag;
}
public Object getQueueHeader() {
Object obj=queue.peek();
return obj;
}
public int queueSize() {
int queueSize=queue.size();
return queueSize;
}
public boolean delQueue() {
boolean flag=false;
Object obj=queue.poll();
if(obj!=null){
flag=true;
}
return flag;
}
}
package com.abin.lee.queue;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
*
* 获取spring容器,以访问容器中定义的其他bean
*
* @author lyltiger
* @since MOSTsView 3.0 2009-11-16
*/
public class SpringContextUtil implements ApplicationContextAware {
// Spring应用上下文环境
private static ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"com/abin/lee/spring/applicationContext-queue.xml");
/**
* 实现ApplicationContextAware接口的回调方法,设置上下文环境
*
* @param applicationContext
*/
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
/**
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 获取对象 这里重写了bean方法,起主要作用
*
* @param name
* @return Object 一个以所给名字注册的bean的实例
* @throws BeansException
*/
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}
}
package com.abin.lee.queue;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class QueueServlet extends HttpServlet{
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Map map=request.getParameterMap();
String name1=(String)((Object[])map.get("name1"))[0];
String name2=(String)((Object[])map.get("name2"))[0];
MakeQueue makeQueue = (MakeQueue)SpringContextUtil.getBean("makeQueue");//bean的名称
System.out.println(makeQueue.queueSize());
makeQueue.addQueue(name1);
makeQueue.addQueue(name2);
System.out.println(makeQueue.queueSize());
ServletOutputStream out=response.getOutputStream();
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));
writer.write("success");
writer.flush();
writer.close();
}
}
package com.abin.lee.spring;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
public class SpringUnit extends TestCase {
private static final String HTTP_URL="http://localhost:1010/WebService/servlet/QueueServlet";
public void testBean() {
HttpClient client=new DefaultHttpClient();
HttpPost post=new HttpPost(HTTP_URL);
try {
List<NameValuePair> nvps=new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("name1", "lee"));
nvps.add(new BasicNameValuePair("name2", "abin"));
post.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8));
HttpResponse response=client.execute(post);
HttpEntity entity=response.getEntity();
String result=EntityUtils.toString(entity);
System.out.println("result="+result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?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"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-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/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- Queue全局队列 -->
<bean id="makeQueue" class="com.abin.lee.queue.MakeQueue" scope="singleton" />
</beans>