Browse Source

微信消息调研

gy 2 months ago
parent
commit
26a39b9bce

+ 2 - 2
build.gradle

@@ -24,14 +24,14 @@ dependencyManagement {
 }
 
 dependencies {
-    implementation 'org.springframework.boot:spring-boot-starter-web'
+    implementation libs.springbootstartWeb
     compileOnly 'org.projectlombok:lombok'
     developmentOnly 'org.springframework.boot:spring-boot-devtools'
     annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
     annotationProcessor 'org.projectlombok:lombok'
     testImplementation 'org.springframework.boot:spring-boot-starter-test'
     testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
-    implementation 'org.apache.httpcomponents.client5:httpclient5:5.2.3'
+    implementation libs.httpclient5
 }
 
 tasks.named('test') {

+ 2 - 1
gradle.properties

@@ -1 +1,2 @@
-org.gradle.caching=false
+org.gradle.caching=false
+enableFeaturePreview=VERSION_CATALOGS

+ 8 - 0
gradle/libs.versions.toml

@@ -0,0 +1,8 @@
+[versions]
+
+[libraries]
+springbootstartWeb = {module="org.springframework.boot:spring-boot-starter-web",version="3.4.4"}
+httpclient5 = {module="org.apache.httpcomponents.client5:httpclient5",version="5.4.1"}
+[plugins]
+
+[bundles]

+ 0 - 2
settings.gradle

@@ -15,7 +15,6 @@ pluginManagement {
         mavenCentral()
         maven { url 'https://jitpack.io' }
         gradlePluginPortal()
-        jcenter()
 
     }
 }
@@ -37,7 +36,6 @@ dependencyResolutionManagement {
         google()
         mavenCentral()
         maven { url 'https://jitpack.io' }
-        jcenter()
     }
 }
 

+ 51 - 0
src/main/java/cn/jx/wechat/app/wechatrobot/config/AutoBeanFilterConfig.java

@@ -0,0 +1,51 @@
+package cn.jx.wechat.app.wechatrobot.config;
+
+
+import org.springframework.boot.autoconfigure.AutoConfigurationImportFilter;
+import org.springframework.boot.autoconfigure.AutoConfigurationMetadata;
+import org.springframework.context.EnvironmentAware;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+
+//@Configuration
+public class AutoBeanFilterConfig implements AutoConfigurationImportFilter, EnvironmentAware {
+
+    private Environment environment;
+    private Map<String, Set<String>> filterConfigMap = new LinkedHashMap<>();
+
+    public AutoBeanFilterConfig(){
+        //Set<String> autoHttpClient5Filter=new HashSet<>(2);
+        //this.filterConfigMap.put("auto.httpClient5",autoHttpClient5Filter);
+    }
+
+    @Override
+    public void setEnvironment(Environment environment) {
+        this.environment = environment;
+    }
+
+    @Override
+    public boolean[] match(String[] autoConfigurationClasses, AutoConfigurationMetadata autoConfigurationMetadata) {
+
+        boolean[] skip = new boolean[autoConfigurationClasses.length];
+        Set<String> filterClass = new HashSet<>(10);
+        this.filterConfigMap.values().forEach(filterClass::addAll);
+        for (int i = 0; i < autoConfigurationClasses.length; i++) {
+            String autoConfigurationClass = autoConfigurationClasses[i];
+            if (null!=autoConfigurationClass&&filterClass.contains(autoConfigurationClass)) {
+                skip[i] = true;
+            }else{
+                skip[i] = false;
+            }
+        }
+        return skip;
+
+    }
+}
+
+

+ 15 - 13
src/main/java/cn/jx/wechat/app/wechatrobot/config/RestfulConfig.java

@@ -1,24 +1,26 @@
 package cn.jx.wechat.app.wechatrobot.config;
 
 
+import org.springframework.boot.autoconfigure.http.client.HttpClientProperties;
+import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
-import org.springframework.web.client.RestTemplate;
 
 @Configuration(proxyBeanMethods=true)
 public class RestfulConfig {
 
-    //默认RestTemplate配置工厂(采用httpclient)
-    @Bean("defaultAppRestFactory")
-    public HttpComponentsClientHttpRequestFactory defaultAppRestFactory(RestProperties restProperties) {
-        return new ComponentsHttpClientConfigBuilder()
-                .restProperties(restProperties)
-                .conProp(restProperties.getMaster())
-                .build();
-    }
-    @Bean("c")
-    public RestTemplate appRestTemplate() {
 
-    }
+
+    //默认RestTemplate配置工厂(采用httpclient)
+//    @Bean("defaultAppRestFactory")
+//    public HttpComponentsClientHttpRequestFactory defaultAppRestFactory(RestProperties restProperties) {
+//        return new ComponentsHttpClientConfigBuilder()
+//                .restProperties(restProperties)
+//                .conProp(restProperties.cmdcgetMaster())
+//                .build();
+//    }
+//    @Bean("c")
+//    public RestTemplate appRestTemplate() {
+//
+//    }
 }

+ 5 - 3
src/main/java/cn/jx/wechat/app/wechatrobot/web/AppEventCtrl.java

@@ -1,5 +1,7 @@
 package cn.jx.wechat.app.wechatrobot.web;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -8,16 +10,16 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController("appEventCtrl")
 public class AppEventCtrl {
 
-
+    private static Logger log= LoggerFactory.getLogger(AppEventCtrl.class);
     @PostMapping("/user/message")
     public Object userMessageEvent(){
-
+        log.info(">>>测试企业微信消息事件回调");
         return null;
     }
 
     @PostMapping("/auth")
     public Object authEvent(){
-
+        log.info(">>>测试企业微信认证授权信息事件回调");
         return null;
     }
 }

+ 1 - 0
src/main/resources/META-INF/spring.factories

@@ -0,0 +1 @@
+#org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=cn.jx.wechat.app.wechatrobot.config.AutoBeanFilterConfig

+ 3 - 1
src/main/resources/application.properties

@@ -1,3 +1,5 @@
 spring.application.name=wechat-robot
 server.port=9028
-server.servlet.context-path=robot
+server.servlet.context-path=/robot
+
+

+ 9 - 2
src/test/java/cn/jx/wechat/app/wechatrobot/WechatRobotApplicationTests.java

@@ -1,13 +1,20 @@
+
 package cn.jx.wechat.app.wechatrobot;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
+import cn.jx.wechat.app.wechatrobot.WechatRobotApplication;
+
 
-@SpringBootTest
+@SpringBootTest(webEnvironment=SpringBootTest.WebEnvironment.DEFINED_PORT,
+        classes={WechatRobotApplication.class})
 class WechatRobotApplicationTests {
 
+
     @Test
-    void contextLoads() {
+    public void testWeb(){
+        System.out.println("66");
     }
 
+
 }