From bd22c80270ba6fd67a087b543d3b9033f207d2f0 Mon Sep 17 00:00:00 2001 From: WuXianChaoPin <1029559041@qq.com> Date: Wed, 2 May 2018 18:49:45 +0800 Subject: [PATCH] thift --- README.md | 2 - core/pom.xml | 7 +- .../annotation/ConfigurationSelector.java | 40 ------------ .../EnableWebCrawlerConfiguration.java | 3 + .../java/org/pqh/core/util/SpringUtil.java | 64 ------------------- pom.xml | 8 +-- web/pom.xml | 10 ++- .../java/org/pqh/config/SpringConfig.java | 9 +-- .../java/org/pqh/config/WebCrawlerConfig.java | 7 -- .../main/java/org/pqh/thrift/QueryImp.java | 18 ++++++ .../java/org/pqh/thrift/ThriftClientDemo.java | 39 +++++++++++ .../java/org/pqh/thrift/ThriftServerDemo.java | 27 ++++++++ web/src/main/resources/TestQry.thrift | 23 +++++++ web/src/main/resources/config.properties | 11 ++-- 14 files changed, 130 insertions(+), 138 deletions(-) delete mode 100644 core/src/main/java/org/pqh/core/annotation/ConfigurationSelector.java delete mode 100644 core/src/main/java/org/pqh/core/util/SpringUtil.java delete mode 100644 web/src/main/java/org/pqh/config/WebCrawlerConfig.java create mode 100644 web/src/main/java/org/pqh/thrift/QueryImp.java create mode 100644 web/src/main/java/org/pqh/thrift/ThriftClientDemo.java create mode 100644 web/src/main/java/org/pqh/thrift/ThriftServerDemo.java create mode 100644 web/src/main/resources/TestQry.thrift diff --git a/README.md b/README.md index 46f3016..e69de29 100644 --- a/README.md +++ b/README.md @@ -1,2 +0,0 @@ - -![image](https://www.baidu.com/img/bd_logo1.png) \ No newline at end of file diff --git a/core/pom.xml b/core/pom.xml index 65f6d27..af344df 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -1,7 +1,7 @@ - webcrawler + Webcrawler org.pqh 1.0-SNAPSHOT @@ -74,11 +74,6 @@ commons-io - - javax.servlet - javax.servlet-api - provided - com.alibaba diff --git a/core/src/main/java/org/pqh/core/annotation/ConfigurationSelector.java b/core/src/main/java/org/pqh/core/annotation/ConfigurationSelector.java deleted file mode 100644 index 609b93e..0000000 --- a/core/src/main/java/org/pqh/core/annotation/ConfigurationSelector.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.pqh.core.annotation; - -import org.pqh.core.util.LogManger; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.ImportSelector; -import org.springframework.core.type.AnnotationMetadata; - -/** - * Created by reborn on 2017/9/20. - * 按条件导入配置类 - */ -public class ConfigurationSelector implements ImportSelector,LogManger{ - @Override - public String[] selectImports(AnnotationMetadata annotationMetadata) { - String appPath=this.getClass().getResource("").getPath(); - log.info("appPath="+appPath); - //根据配置类判断 - if(annotationMetadata.getClassName().equals("org.pqh.config.SpringConfig")){ - return new String[]{"org.pqh.config.WebCrawlerConfig"}; - }//根据配置类已有注解判断 - else if(annotationMetadata.getAnnotationTypes().contains(Configuration.class.getName())){ - return new String[]{"org.pqh.aaaaaaaaaaaa"}; - } - //根据配置类路径判断 - else if(appPath!=null&&appPath.contains("/web/WEB-INF")){ - return new String[]{"org.pqh.bbbbbbbbbb"}; - } - //根据系统信息 - else if("XXXX".equals(System.getProperty("XXXX"))){ - return new String[]{"org.pqh.cccccccccc"}; - } - //根据环境变量 - else if("XXX".equals(System.getenv("XXXX"))){ - return new String[]{"org.pqh.ddddddddddd"}; - } - else{ - return new String[0]; - } - } -} diff --git a/core/src/main/java/org/pqh/core/annotation/EnableWebCrawlerConfiguration.java b/core/src/main/java/org/pqh/core/annotation/EnableWebCrawlerConfiguration.java index aae339f..65b12e3 100644 --- a/core/src/main/java/org/pqh/core/annotation/EnableWebCrawlerConfiguration.java +++ b/core/src/main/java/org/pqh/core/annotation/EnableWebCrawlerConfiguration.java @@ -1,6 +1,8 @@ package org.pqh.core.annotation; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.context.annotation.PropertySource; import java.lang.annotation.*; @@ -10,6 +12,7 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @Documented +@PropertySource("classpath:config.properties") @ComponentScan("org.pqh.core") public @interface EnableWebCrawlerConfiguration { } diff --git a/core/src/main/java/org/pqh/core/util/SpringUtil.java b/core/src/main/java/org/pqh/core/util/SpringUtil.java deleted file mode 100644 index 483c3f3..0000000 --- a/core/src/main/java/org/pqh/core/util/SpringUtil.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.pqh.core.util; - -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * Created by reborn on 2017/9/19. - */ -@Component -@Lazy(false) -public class SpringUtil implements ApplicationContextAware,LogManger { - private static ApplicationContext applicationContext; - - public static T getBean(Class c){ - return applicationContext.getBean(c); - } - - public static T getBean(String beanName){ - return (T) applicationContext.getBean(beanName); - } - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - log.info("init applicationContext"); - SpringUtil.applicationContext=applicationContext; - } - - /** - * - * @param clazz 注册class - * @param serviceName 注册别名 - * @param propertyMap 注入属性 - */ - public static void addBean(Class clazz,String serviceName,Map propertyMap){ - BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(clazz); - if(propertyMap!=null){ - for(String key:propertyMap.keySet()){ - beanDefinitionBuilder.addPropertyValue(key, propertyMap.get(key)); - } - } - registerBean(serviceName, beanDefinitionBuilder.getRawBeanDefinition()); - } - - /** - * @desc 向spring容器注册bean - * @param beanName - * @param beanDefinition - */ - private static void registerBean(String beanName, BeanDefinition beanDefinition) { - ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) applicationContext; - BeanDefinitionRegistry beanDefinitonRegistry = (BeanDefinitionRegistry) configurableApplicationContext - .getBeanFactory(); - beanDefinitonRegistry.registerBeanDefinition(beanName, beanDefinition); - } -} diff --git a/pom.xml b/pom.xml index 4f78297..6b58bd4 100644 --- a/pom.xml +++ b/pom.xml @@ -2,15 +2,15 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 org.pqh - webcrawler + Webcrawler pom 1.0-SNAPSHOT core web - webcrawler Maven Webapp - https://gitee.com/WuXianChaoPin/webCrawler + Webcrawler Maven Webapp + https://gitee.com/WuXianChaoPin/WebCrawler UTF-8 @@ -112,7 +112,7 @@ - webcrawler + Webcrawler maven-war-plugin diff --git a/web/pom.xml b/web/pom.xml index ebdff75..8f5d82d 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -1,7 +1,7 @@ - webcrawler + Webcrawler org.pqh 1.0-SNAPSHOT @@ -17,6 +17,7 @@ RELEASE 1.2 1.1.2 + RELEASE @@ -122,9 +123,14 @@ ${standard.version} + + org.apache.thrift + libthrift + ${thrift.version} + - web + Webcrawler diff --git a/web/src/main/java/org/pqh/config/SpringConfig.java b/web/src/main/java/org/pqh/config/SpringConfig.java index eb9caa1..b06156e 100644 --- a/web/src/main/java/org/pqh/config/SpringConfig.java +++ b/web/src/main/java/org/pqh/config/SpringConfig.java @@ -1,6 +1,6 @@ package org.pqh.config; -import org.pqh.core.annotation.ConfigurationSelector; +import org.pqh.core.annotation.EnableWebCrawlerConfiguration; import org.springframework.context.annotation.*; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; @@ -10,13 +10,10 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * Created by reborn on 2017/7/28. */ -@Configuration @EnableWebMvc +@ComponentScan({"${spring.scan:org.pqh.controller}"}) @EnableAspectJAutoProxy(proxyTargetClass = true) -@PropertySource("classpath:config.properties") -@ComponentScan({"${spring.scan:org.pqh.controller}","org.pqh.util"}) -@Import({ConfigurationSelector.class}) -//@Import(WebCrawlerConfig.class) +@EnableWebCrawlerConfiguration public class SpringConfig implements WebMvcConfigurer { @Override diff --git a/web/src/main/java/org/pqh/config/WebCrawlerConfig.java b/web/src/main/java/org/pqh/config/WebCrawlerConfig.java deleted file mode 100644 index e7e44dd..0000000 --- a/web/src/main/java/org/pqh/config/WebCrawlerConfig.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.pqh.config; - -import org.pqh.core.annotation.EnableWebCrawlerConfiguration; - -@EnableWebCrawlerConfiguration -public class WebCrawlerConfig { -} diff --git a/web/src/main/java/org/pqh/thrift/QueryImp.java b/web/src/main/java/org/pqh/thrift/QueryImp.java new file mode 100644 index 0000000..3210daa --- /dev/null +++ b/web/src/main/java/org/pqh/thrift/QueryImp.java @@ -0,0 +1,18 @@ +package org.pqh.thrift; + +import org.apache.thrift.TException; + +public class QueryImp implements TestQry.Iface { + @Override + public QryResult qryTest(int qryCode) throws TException { + QryResult result = new QryResult(); + if(qryCode==1){ + result.code = 1; + result.msg = "success"; + }else{ + result.code = 0; + result.msg = "fail"; + } + return result; + } +} diff --git a/web/src/main/java/org/pqh/thrift/ThriftClientDemo.java b/web/src/main/java/org/pqh/thrift/ThriftClientDemo.java new file mode 100644 index 0000000..270ced0 --- /dev/null +++ b/web/src/main/java/org/pqh/thrift/ThriftClientDemo.java @@ -0,0 +1,39 @@ +package org.pqh.thrift; + +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.protocol.TProtocol; +import org.apache.thrift.transport.TFramedTransport; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.transport.TTransport; + +public class ThriftClientDemo { + private final static int DEFAULT_QRY_CODE = 1; + public static void main(String[] args){ + try { + TTransport tTransport = getTTransport(); + TProtocol protocol = new TBinaryProtocol(tTransport); + TestQry.Client client = new TestQry.Client(protocol); + QryResult result = client.qryTest(DEFAULT_QRY_CODE); + System.out.println("code="+result.code+" msg="+result.msg); + }catch (Exception e) { + e.printStackTrace(); + } + } + private static TTransport getTTransport() throws Exception{ + try{ + TTransport tTransport = getTTransport("127.0.0.1", 2233, 5000); + if(!tTransport.isOpen()){ + tTransport.open(); + } + return tTransport; + }catch(Exception e){ + e.printStackTrace(); + } + return null; + } + private static TTransport getTTransport(String host, int port, int timeout) { + final TSocket tSocket = new TSocket(host, port, timeout); + final TTransport transport = new TFramedTransport(tSocket); + return transport; + } +} diff --git a/web/src/main/java/org/pqh/thrift/ThriftServerDemo.java b/web/src/main/java/org/pqh/thrift/ThriftServerDemo.java new file mode 100644 index 0000000..426b4b8 --- /dev/null +++ b/web/src/main/java/org/pqh/thrift/ThriftServerDemo.java @@ -0,0 +1,27 @@ +package org.pqh.thrift; + +import org.apache.thrift.TProcessorFactory; +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.server.TNonblockingServer; +import org.apache.thrift.server.TServer; +import org.apache.thrift.transport.TFramedTransport; +import org.apache.thrift.transport.TNonblockingServerSocket; +import org.apache.thrift.transport.TTransportException; + +public class ThriftServerDemo { + public static void main(String[] args) { + + try { + TNonblockingServerSocket socket = new TNonblockingServerSocket(2233); + TestQry.Processor processor = new TestQry.Processor(new QueryImp()); + TNonblockingServer.Args arg = new TNonblockingServer.Args(socket); + arg.protocolFactory(new TBinaryProtocol.Factory()); + arg.transportFactory(new TFramedTransport.Factory()); + arg.processorFactory(new TProcessorFactory(processor)); + TServer server = new TNonblockingServer (arg); + server.serve(); + } catch (TTransportException e) { + e.printStackTrace(); + } + } +} diff --git a/web/src/main/resources/TestQry.thrift b/web/src/main/resources/TestQry.thrift new file mode 100644 index 0000000..778b237 --- /dev/null +++ b/web/src/main/resources/TestQry.thrift @@ -0,0 +1,23 @@ +/** +* 文件名为TestQry.thrift +* 实现功能:创建一个查询结果struct和一个服务接口service +* 基于:thrift-0.9.2 +**/ +namespace java com.thrift +struct QryResult { + /** + *返回码, 1成功,0失败 + */ + 1:i32 code; + /** + *响应信息 + */ + 2:string msg; +} +service TestQry{ + /** + * 测试查询接口,当qryCode值为1时返回"成功"的响应信息,qryCode值为其他值时返回"失败"的响应信息 + * @param qryCode测试参数 + */ + QryResult qryTest(1:i32 qryCode) +} \ No newline at end of file diff --git a/web/src/main/resources/config.properties b/web/src/main/resources/config.properties index 0bd4963..732fa67 100644 --- a/web/src/main/resources/config.properties +++ b/web/src/main/resources/config.properties @@ -1,11 +1,8 @@ -#-----------------------hibernate----------------------------- +#-----------------------hibernate\u914D\u7F6E----------------------------- hibernate.dialect=org.hibernate.dialect.MySQL57Dialect hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver -hibernate.connection.url=jdbc:mysql://mikuhime.xyz:3306/webcrawler?serverTimezone=UTC +hibernate.connection.url=jdbc:mysql://127.0.0.1:3306/webcrawler?serverTimezone=UTC hibernate.connection.username=bilibili hibernate.connection.password=2233 -#-----------------------DruidDataSource----------------------- -druid.maxActive=20 - - - +#-----------------------DruidDataSource\u914D\u7F6E----------------------- +druid.maxActive=20 \ No newline at end of file