From a21dd29e01c79234d8dea0225582b210e2a0f256 Mon Sep 17 00:00:00 2001 From: WuXianChaoPin <1029559041@qq.com> Date: Fri, 22 Jun 2018 18:34:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/core/thrift/ThriftClientPool.java | 11 ++-- .../main/java/web/service/BiliService.java | 3 +- web/src/main/java/web/util/DynamicTimer.java | 1 + web/src/main/resources/config.properties | 2 +- web/src/main/webapp/WEB-INF/jsp/head.jsp | 3 -- web/src/main/webapp/WEB-INF/jsp/test.jsp | 5 +- .../java/{ => hibernate}/HibernateTest.java | 4 +- web/src/test/java/spring/SpringConfig.java | 12 +++++ .../test/java/{ => spring}/SpringMVCTest.java | 4 +- web/src/test/java/spring/UrlTest.java | 50 +++++++++++++++++++ web/src/test/java/thrift/ThriftTest.java | 28 ++++++++--- .../java/web/controller/TestController.java | 13 +++++ 12 files changed, 115 insertions(+), 21 deletions(-) rename web/src/test/java/{ => hibernate}/HibernateTest.java (93%) create mode 100644 web/src/test/java/spring/SpringConfig.java rename web/src/test/java/{ => spring}/SpringMVCTest.java (97%) create mode 100644 web/src/test/java/spring/UrlTest.java diff --git a/core/src/main/java/core/thrift/ThriftClientPool.java b/core/src/main/java/core/thrift/ThriftClientPool.java index 261fb69..f60ca63 100644 --- a/core/src/main/java/core/thrift/ThriftClientPool.java +++ b/core/src/main/java/core/thrift/ThriftClientPool.java @@ -31,7 +31,9 @@ public class ThriftClientPool { private static GenericObjectPool pool; - private static final Map, Constructor> map = new HashMap<>(); + private static final Map, Constructor> asyncClient = new HashMap<>(); + + private static final Map, Constructor> synchronizeClient = new HashMap<>(); @PostConstruct public void init() { @@ -47,14 +49,15 @@ public class ThriftClientPool { } private static E client(Class c, TNonblockingSocket socket) throws NoSuchMethodException, IOException, IllegalAccessException, InvocationTargetException, InstantiationException { - if (!map.containsKey(c)) { - map.put(c, c.getConstructor(TProtocolFactory.class, TAsyncClientManager.class, TNonblockingTransport.class)); + if (!asyncClient.containsKey(c)) { + asyncClient.put(c, c.getConstructor(TProtocolFactory.class, TAsyncClientManager.class, TNonblockingTransport.class)); } TAsyncClientManager clientManager = new TAsyncClientManager(); TProtocolFactory protocol = new TBinaryProtocol.Factory(); - return (E) map.get(c).newInstance(protocol,clientManager,socket); + return (E) asyncClient.get(c).newInstance(protocol,clientManager,socket); } + public interface Thrift { void doExecute(E client) throws Exception; } diff --git a/web/src/main/java/web/service/BiliService.java b/web/src/main/java/web/service/BiliService.java index 14012f7..72f2889 100644 --- a/web/src/main/java/web/service/BiliService.java +++ b/web/src/main/java/web/service/BiliService.java @@ -2,11 +2,10 @@ package web.service; import db.annotation.Aliyun; import db.annotation.Model; -import db.model.AbstractModel; import org.springframework.stereotype.Service; @Service @Model(Aliyun.class) -public class BiliService extends BaseService{ +public class BiliService extends BaseService{ } diff --git a/web/src/main/java/web/util/DynamicTimer.java b/web/src/main/java/web/util/DynamicTimer.java index 1b48e87..2278bb0 100644 --- a/web/src/main/java/web/util/DynamicTimer.java +++ b/web/src/main/java/web/util/DynamicTimer.java @@ -30,6 +30,7 @@ public class DynamicTimer extends ScheduledTaskRegistrar implements ApplicationL public void addTriggerTask(ScheduledTaskEntity scheduledTaskEntity) { super.scheduleTriggerTask(new TriggerTask(()->{ + },(TriggerContext triggerContext)->{ CronTrigger trigger = new CronTrigger(scheduledTaskEntity.getExpression()); log.debug(triggerContext+""); diff --git a/web/src/main/resources/config.properties b/web/src/main/resources/config.properties index ae1cef6..eb5dbac 100644 --- a/web/src/main/resources/config.properties +++ b/web/src/main/resources/config.properties @@ -9,6 +9,6 @@ hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver druid.maxActive=20 #thrift\u914D\u7F6E -thrift.ip=sukura.top +thrift.ip=127.0.0.1 thrift.port=2233 thrift.timeout=3000 \ No newline at end of file diff --git a/web/src/main/webapp/WEB-INF/jsp/head.jsp b/web/src/main/webapp/WEB-INF/jsp/head.jsp index 2ab699c..296a8ed 100644 --- a/web/src/main/webapp/WEB-INF/jsp/head.jsp +++ b/web/src/main/webapp/WEB-INF/jsp/head.jsp @@ -6,9 +6,6 @@ To change this template use File | Settings | File Templates. --%> <%@ page pageEncoding="utf-8"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="fmt"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="sql"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="fn"%> <%@ page isELIgnored="false"%> diff --git a/web/src/main/webapp/WEB-INF/jsp/test.jsp b/web/src/main/webapp/WEB-INF/jsp/test.jsp index 740a5e0..d33c9a7 100644 --- a/web/src/main/webapp/WEB-INF/jsp/test.jsp +++ b/web/src/main/webapp/WEB-INF/jsp/test.jsp @@ -8,6 +8,7 @@ <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> <%@ page pageEncoding="utf-8" %> @@ -20,12 +21,14 @@ $(function () { $("#demo").tmpl([{type: 'primary'}, {type: 'secondary'}, {type: 'success'}, {type: 'danger'}, {type: 'warning'}, {type: 'info'}, {type: 'light'}, {type: 'dark'}]).appendTo('#div_demo'); + + console.info("${spring:mvcUrl('MC#get#0').build()}"); }); -
+ diff --git a/web/src/test/java/HibernateTest.java b/web/src/test/java/hibernate/HibernateTest.java similarity index 93% rename from web/src/test/java/HibernateTest.java rename to web/src/test/java/hibernate/HibernateTest.java index a1f7ae2..13ec1f4 100644 --- a/web/src/test/java/HibernateTest.java +++ b/web/src/test/java/hibernate/HibernateTest.java @@ -1,3 +1,5 @@ +package hibernate; + import db.model.TaskModel; import db.model.bilibili.ScheduledTaskEntity; import db.util.ExportUtil; @@ -7,8 +9,6 @@ import org.hibernate.criterion.DetachedCriteria; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.orm.hibernate5.HibernateTemplate; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; diff --git a/web/src/test/java/spring/SpringConfig.java b/web/src/test/java/spring/SpringConfig.java new file mode 100644 index 0000000..57c194e --- /dev/null +++ b/web/src/test/java/spring/SpringConfig.java @@ -0,0 +1,12 @@ +package spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +@ComponentScan({"web.controller","web.service"}) +public class SpringConfig implements WebMvcConfigurer { + + +} diff --git a/web/src/test/java/SpringMVCTest.java b/web/src/test/java/spring/SpringMVCTest.java similarity index 97% rename from web/src/test/java/SpringMVCTest.java rename to web/src/test/java/spring/SpringMVCTest.java index d2df299..a2dcabb 100644 --- a/web/src/test/java/SpringMVCTest.java +++ b/web/src/test/java/spring/SpringMVCTest.java @@ -1,3 +1,5 @@ +package spring; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Before; @@ -26,7 +28,7 @@ public class SpringMVCTest { private MockMvc mockMvc; @Autowired - WebApplicationContext wac; + private WebApplicationContext wac; @Before public void setup() { diff --git a/web/src/test/java/spring/UrlTest.java b/web/src/test/java/spring/UrlTest.java new file mode 100644 index 0000000..c1fdccf --- /dev/null +++ b/web/src/test/java/spring/UrlTest.java @@ -0,0 +1,50 @@ +package spring; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.ResultActions; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder; +import web.controller.MenuController; + +//让测试运行于Spring环境 +@RunWith(SpringJUnit4ClassRunner.class) +@SpringJUnitWebConfig +@ContextConfiguration(classes = SpringConfig.class) +public class UrlTest { + + private MockMvc mockMvc; + + private Logger log = LogManager.getLogger(); + + @Autowired + private WebApplicationContext wac; + + @Before + public void setup() { + mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); + } + + + @Test + public void buildUrl() { + log.info(MvcUriComponentsBuilder.fromController(MenuController.class).build()); + } + + @Test + public void testJson() throws Exception { + ResultActions resultActions=mockMvc.perform(MockMvcRequestBuilders.get("/test/task")); + resultActions.andDo(MockMvcResultHandlers.print()).andReturn(); + } +} diff --git a/web/src/test/java/thrift/ThriftTest.java b/web/src/test/java/thrift/ThriftTest.java index ce3cfe7..0c0c5ae 100644 --- a/web/src/test/java/thrift/ThriftTest.java +++ b/web/src/test/java/thrift/ThriftTest.java @@ -6,31 +6,45 @@ import core.thrift.comment.QueryComment; import core.thrift.task.TSDM; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.thrift.TException; +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.transport.TTransport; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.context.annotation.ComponentScan; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import java.io.IOException; import java.util.ArrayList; //让测试运行于Spring环境 @RunWith(SpringJUnit4ClassRunner.class) @SpringJUnitWebConfig @ContextConfiguration(classes = SpringConfig.class) -@ComponentScan("core.thrift") public class ThriftTest { private static Logger log = LogManager.getLogger(); @Test public void commentSum() throws Exception { + int i=100; + while (i-->0) { + MyAsyncMethodCallback call = new MyAsyncMethodCallback<>(); + ThriftClientPool.doExecute(client -> client.commentSum(49052, call), QueryComment.AsyncClient.class); + log.info(call.getResult()); + Thread.sleep(10); + } + } - MyAsyncMethodCallback call = new MyAsyncMethodCallback<>(); - ThriftClientPool.doExecute(client -> client.commentSum(49052, call), QueryComment.AsyncClient.class); - log.info(call.getResult()); - + @Test + public void commentSum_() throws IOException, TException { + TTransport transport=new TSocket("sukura.top",2233); + transport.open(); + TBinaryProtocol protocol=new TBinaryProtocol(transport); + QueryComment.Client client=new QueryComment.Client(protocol); + log.info(client.commentSum(49052)); } @Test @@ -45,7 +59,7 @@ public class ThriftTest { @Test public void work() throws Exception { MyAsyncMethodCallback call = new MyAsyncMethodCallback<>(); - ThriftClientPool.doExecute(client -> client.qiandao(call), TSDM.AsyncClient.class); + ThriftClientPool.doExecute(client -> client.word(call), TSDM.AsyncClient.class); log.info(call.getResult()); } diff --git a/web/src/test/java/web/controller/TestController.java b/web/src/test/java/web/controller/TestController.java index 17a82b9..29e6f46 100644 --- a/web/src/test/java/web/controller/TestController.java +++ b/web/src/test/java/web/controller/TestController.java @@ -2,15 +2,28 @@ package web.controller; import db.form.DBAction; import db.model.TaskModel; +import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/test") public class TestController extends BiliController{ + @ResponseBody + @RequestMapping(value = "task",produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + public TaskModel test(){ + TaskModel model=new TaskModel(); + model.setId(1); + model.setApi("www.baidu.com"); + return model; + } + @Override public boolean checkAction(DBAction action) { return true; } + + }