lifuquan 2 years ago
parent
commit
d7660594c5

+ 17 - 1
README.md

@@ -1 +1,17 @@
-# springboot多模块系统demo
+# hb_springboot_parent
+
+作为java项目的父项目,统一依赖管理,后续会持续更新依赖版本
+
+## 使用方法
+
+下载项目后使用 `mvn clean install` 命令安装到本地仓库
+
+在新项目的pom.xml中加入
+
+```xml
+<parent>
+    <groupId>com.nokia</groupId>
+    <artifactId>hb_springboot_parent</artifactId>
+    <version>1.0</version>
+</parent>
+```

+ 16 - 1
common/pom.xml

@@ -14,6 +14,21 @@
 
     <packaging>jar</packaging>
 
-    <dependencies></dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
 
 </project>

+ 5 - 0
common/src/main/java/com/nokia/common/mvc/http/R.java

@@ -0,0 +1,5 @@
+package com.nokia.common.mvc.http;
+
+public class R {
+
+}

+ 34 - 0
common/src/main/java/com/nokia/common/mvc/interceptor/ControllerLogInterceptor.java

@@ -0,0 +1,34 @@
+package com.nokia.common.mvc.interceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.util.StopWatch;
+import org.springframework.web.servlet.HandlerInterceptor;
+import lombok.extern.slf4j.Slf4j;
+
+/*
+ * 通过拦截器给controller添加log
+ * 
+ * 通过拦截器的方式如果读取response的内容,后续无法再次写入,因此这里实现计时很简单,但是实现输出返回值就比较麻烦
+ * 同样的,如果要获取request中的参数信息也是比较复杂的,因为一旦读取,后续的处理就无法再次读取了。
+ */
+@Slf4j
+public class ControllerLogInterceptor implements HandlerInterceptor {
+
+    private StopWatch watch;
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+        log.debug("接收到请求 {} 地址", request.getRequestURL());
+        watch = new StopWatch();
+        watch.start();
+        return true;
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
+            Exception ex) {
+        watch.stop();
+        log.debug("完成请求,耗时 {} ms", watch.getLastTaskTimeMillis());
+    }
+}

+ 4 - 0
doc/接口测试.http

@@ -0,0 +1,4 @@
+### test接口测试
+POST HTTP://127.0.0.1:10001/api/test
+Content-Type: application/json
+

+ 5 - 0
main/pom.xml

@@ -15,6 +15,11 @@
     <packaging>jar</packaging>
 
     <dependencies>
+        <dependency>
+            <groupId>com.nokia.common</groupId>
+            <artifactId>common</artifactId>
+            <version>1.0</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>

+ 2 - 1
main/src/main/java/com/nokia/main/MainApplication.java

@@ -3,7 +3,8 @@ package com.nokia.main;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
-@SpringBootApplication
+// scanBasePackages 指定springboot组件扫描的包
+@SpringBootApplication(scanBasePackages = { "com.nokia" })
 public class MainApplication {
 
     public static void main(String[] args) {

+ 18 - 0
main/src/main/java/com/nokia/main/config/MvcConfig.java

@@ -0,0 +1,18 @@
+package com.nokia.main.config;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import com.nokia.common.mvc.interceptor.ControllerLogInterceptor;
+
+@Component
+public class MvcConfig implements WebMvcConfigurer {
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        // 添加拦截器
+        registry.addInterceptor(new ControllerLogInterceptor())
+                .addPathPatterns(new String[] { "/api/**" })
+                .excludePathPatterns(new String[] {});
+    }
+}

+ 13 - 0
main/src/main/java/com/nokia/main/controller/TestController.java

@@ -0,0 +1,13 @@
+package com.nokia.main.controller;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class TestController {
+
+    @PostMapping("/api/test")
+    public String test() {
+        return "test ok";
+    }
+}

+ 2 - 0
pom.xml

@@ -63,11 +63,13 @@
                 <artifactId>snmp4j</artifactId>
                 <version>2.8.12</version>
             </dependency>
+            <!-- 项目中建议尽量使用mybaitis 不要使用mbp -->
             <dependency>
                 <groupId>org.mybatis.spring.boot</groupId>
                 <artifactId>mybatis-spring-boot-starter</artifactId>
                 <version>2.2.2</version>
             </dependency>
+            <!-- 不推荐使用mbp -->
             <dependency>
                 <groupId>com.baomidou</groupId>
                 <artifactId>mybatis-plus-boot-starter</artifactId>