From ca9817461a504049e289c154939454a6e5a37089 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 28 九月 2022 09:13:19 +0800
Subject: [PATCH] 1

---
 /dev/null                                                  |   18 ---
 .gitignore                                                 |    1 
 src/main/java/com/lf/server/config/RestTemplateConfig.java |   98 ++++++++++++++++
 src/main/resources/logback-spring.xml                      |  106 +++++++++++++++++
 src/main/java/com/lf/server/config/ShiroConfig.java        |    2 
 src/main/java/com/lf/server/aspect/LogAspect.java          |   79 +++++++++++++
 pom.xml                                                    |    5 
 src/main/java/com/lf/server/config/PropertiesConfig.java   |   11 +
 src/main/resources/application.yml                         |   22 +++
 9 files changed, 322 insertions(+), 20 deletions(-)

diff --git a/.gitignore b/.gitignore
index 67a2fab..3d6a2f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,4 @@
 ### VS Code ###
 .vscode/
 /data/*.backup
+/src.zip
diff --git a/pom.xml b/pom.xml
index 63b73f7..21222c2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -148,6 +148,11 @@
             <artifactId>springfox-swagger-ui</artifactId>
             <version>2.9.2</version>
         </dependency>
+        <!-- httpclient -->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+        </dependency>
         <!--<dependency>
             <groupId>org.thymeleaf.extras</groupId>
             <artifactId>thymeleaf-extras-springsecurity5</artifactId>
diff --git a/src/main/java/com/lf/server/aspect/LogAspect.java b/src/main/java/com/lf/server/aspect/LogAspect.java
new file mode 100644
index 0000000..2bfd023
--- /dev/null
+++ b/src/main/java/com/lf/server/aspect/LogAspect.java
@@ -0,0 +1,79 @@
+package com.lf.server.aspect;
+
+import org.apache.shiro.SecurityUtils;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+
+/**
+ * LogAspect
+ * @author WWW
+ */
+@Aspect
+@Component
+public class LogAspect {
+    @Pointcut("")
+    public void logPointCut() {
+
+    }
+
+    @Around("logPointCut()")
+    public Object around(ProceedingJoinPoint point) throws Throwable {
+        long beginTime = System.currentTimeMillis();
+        //鎵ц鏂规硶
+        Object result = point.proceed();
+        //鎵ц鏃堕暱(姣)
+        long time = System.currentTimeMillis() - beginTime;
+        //System.out.println("time"+time);
+
+        //淇濆瓨鏃ュ織
+        saveLogAction(point, time);
+
+        return result;
+    }
+
+    private void saveLogAction(ProceedingJoinPoint joinPoint, long time) {
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+        Method method = signature.getMethod();
+        /*LogAction logAction = new LogAction();
+        com.landtool.lanbase.common.annotation.LogAction log = method.getAnnotation(com.landtool.lanbase.common.annotation.LogAction.class);
+        if(log != null){
+            //娉ㄨВ涓婄殑鎻忚堪
+            String[] list = log.value().split(",");
+            logAction.setLargemodel(list[0]); //澶фā鍧�
+            logAction.setSmallmodel(list[1]);//灏忔ā鍧�
+            logAction.setRemark(list[2]);    //澶囨敞
+            logAction.setActiontype(list[3]);//鎿嶄綔绫诲瀷
+
+//			logAction.setRemark(log.value());
+//			logAction.setActiontype(log.value());
+        }
+
+        //鑾峰彇request
+        HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+        String url=request.getServletPath();
+        logAction.setRequesturl(url);
+        //璁剧疆IP鍦板潃
+        logAction.setRequestip(IPUtils.getIpAddr(request));
+
+        //鐢ㄦ埛鍚�
+        Long userid = ((OrgUser) SecurityUtils.getSubject().getPrincipal()).getUserid();
+        logAction.setUserid(userid);
+
+        logAction.setAppid(loginConfig.getAppId());
+
+//		logAction.setLargemodel(loginConfig.getAppFullName());
+
+
+
+
+        //淇濆瓨绯荤粺鏃ュ織
+        logActionService.save(logAction);*/
+    }
+}
diff --git a/src/main/java/com/lf/server/config/PropertiesConfig.java b/src/main/java/com/lf/server/config/PropertiesConfig.java
index f5a1731..678cdf7 100644
--- a/src/main/java/com/lf/server/config/PropertiesConfig.java
+++ b/src/main/java/com/lf/server/config/PropertiesConfig.java
@@ -1,5 +1,6 @@
 package com.lf.server.config;
 
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 /**
@@ -8,4 +9,14 @@
  */
 @Component
 public class PropertiesConfig {
+    @Value("${sys.path}")
+    private String path;
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
 }
diff --git a/src/main/java/com/lf/server/config/RestTemplateConfig.java b/src/main/java/com/lf/server/config/RestTemplateConfig.java
new file mode 100644
index 0000000..bd4dd3a
--- /dev/null
+++ b/src/main/java/com/lf/server/config/RestTemplateConfig.java
@@ -0,0 +1,98 @@
+package com.lf.server.config;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.client.ClientHttpRequestFactory;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.http.client.SimpleClientHttpRequestFactory;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.web.client.RestTemplate;
+
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+
+/**
+ * RestTemplateConfig
+ * @author WWW
+ */
+@Configuration
+@ConditionalOnClass(value = {RestTemplate.class, HttpClient.class})
+public class RestTemplateConfig {
+    /**
+     * 杩炴帴姹犵殑鏈�澶ц繛鎺ユ暟榛樿涓�0
+     */
+    @Value("${remote.maxTotalConnect:0}")
+    private int maxTotalConnect;
+
+    /**
+     * 鍗曚釜涓绘満鐨勬渶澶ц繛鎺ユ暟
+     */
+    @Value("${remote.maxConnectPerRoute:1000}")
+    private int maxConnectPerRoute;
+
+    /**
+     * 杩炴帴瓒呮椂榛樿5s
+     */
+    @Value("${remote.connectTimeout:5000}")
+    private int connectTimeout;
+
+    /**
+     * 璇诲彇瓒呮椂榛樿30s
+     */
+    @Value("${remote.readTimeout:30000}")
+    private int readTimeout;
+
+    /**
+     * 鍒涘缓HTTP瀹㈡埛绔伐鍘�
+     *
+     * @return 瀹㈡埛绔伐鍘�
+     */
+    private ClientHttpRequestFactory createFactory() {
+        if (this.maxTotalConnect <= 0) {
+            SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
+            factory.setConnectTimeout(this.connectTimeout);
+            factory.setReadTimeout(this.readTimeout);
+            return factory;
+        }
+
+        HttpClient httpClient = HttpClientBuilder.create().setMaxConnTotal(this.maxTotalConnect).setMaxConnPerRoute(this.maxConnectPerRoute).build();
+        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
+        factory.setConnectTimeout(this.connectTimeout);
+        factory.setReadTimeout(this.readTimeout);
+        return factory;
+    }
+
+    /**
+     * 鍒濆鍖朢estTemplate,骞跺姞鍏pring鐨凚ean宸ュ巶锛岀敱spring缁熶竴绠$悊
+     * 蹇呴』鍔犳敞瑙LoadBalanced
+     *
+     * @return
+     */
+    @Bean
+    @ConditionalOnMissingBean(RestTemplate.class)
+    public RestTemplate getRestTemplate() {
+        RestTemplate restTemplate = new RestTemplate(this.createFactory());
+        List<HttpMessageConverter<?>> converterList = restTemplate.getMessageConverters();
+
+        // 閲嶆柊璁剧疆StringHttpMessageConverter瀛楃闆嗕负UTF-8锛岃В鍐充腑鏂囦贡鐮侀棶棰�
+        HttpMessageConverter<?> converterTarget = null;
+        for (HttpMessageConverter<?> item : converterList) {
+            if (StringHttpMessageConverter.class == item.getClass()) {
+                converterTarget = item;
+                break;
+            }
+        }
+        if (null != converterTarget) {
+            converterList.remove(converterTarget);
+        }
+        converterList.add(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+
+        return restTemplate;
+    }
+}
diff --git a/src/main/java/com/lf/server/config/ShiroConfig.java b/src/main/java/com/lf/server/config/ShiroConfig.java
index 2e87af7..ebe5401 100644
--- a/src/main/java/com/lf/server/config/ShiroConfig.java
+++ b/src/main/java/com/lf/server/config/ShiroConfig.java
@@ -21,7 +21,7 @@
 
 /**
  * ShiroConfig
- * @author
+ * @author WWW
  */
 @SuppressWarnings("ALL")
 //@Configuration
diff --git a/src/main/java/com/lf/server/config/WebMvcConfigurer.java b/src/main/java/com/lf/server/config/WebMvcConfigurer.java
deleted file mode 100644
index 3227d18..0000000
--- a/src/main/java/com/lf/server/config/WebMvcConfigurer.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.lf.server.config;
-
-public class WebMvcConfigurer {
-}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2ceed21..3a439ed 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -2,7 +2,10 @@
   tomcat:
     uri-encoding: UTF-8
   port: 12316
-  context-path: /land
+  #servlet:
+  #  context-path: /land
+  application:
+    name: land
 
 spring:
   datasource:
@@ -34,7 +37,24 @@
       port: 6379
       password:
       database: 1
+    jackson:
+      time-zone: GMT+8
+      date-format: yyyy-MM-dd HH:mm:ss
 
 mybatis:
   type-aliases-package: com.terra.land.mapper
   mapper-locations: classpath:mapper/**/*.xml
+
+logging:
+  config: classpath:log/logback-spring.xml
+
+# RestTemplate config
+remote:
+  maxTotalConnect: 0
+  maxConnectPerRoute: 1000
+  connectTimeout: 5000
+  readTimeout: 30000
+
+# 绯荤粺閰嶇疆
+sys:
+  path: E:\\Test\\LF\\
diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties
deleted file mode 100644
index 41827c3..0000000
--- a/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-log4j.rootLogger=INFO, stdout
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m %n
-
-# General Apache libraries
-log4j.logger.org.apache=WARN
-
-# Spring
-log4j.logger.org.springframework=WARN
-
-# Default Shiro logging
-log4j.logger.org.apache.shiro=INFO
-
-# Disable verbose logging
-log4j.logger.org.apache.shiro.util.ThreadContext=WARN
-log4j.logger.org.apache.shiro.cache.ehcache.EhCache=WARN
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..ef72342
--- /dev/null
+++ b/src/main/resources/logback-spring.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- scan 閰嶇疆鏂囦欢濡傛灉鍙戠敓鏀瑰彉锛屽皢浼氳閲嶆柊鍔犺浇  scanPeriod 妫�娴嬮棿闅旀椂闂�-->
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <contextName>jcpimserver</contextName>
+
+    <!-- 鏂囦欢鍚嶇О -->
+    <property name="log.name.info" value="info" />
+    <property name="log.name.error" value="error" />
+
+    <!--  info 鍦板潃 -->
+    <property name="log.path.info" value="logs/" />
+    <property name="log.file.info" value="logs/info.log" />
+
+    <!-- errr,閿欒璺緞 -->
+    <property name="log.path.error" value="logs/" />
+    <property name="log.file.error" value="logs/error.log" />
+
+    <include resource="org/springframework/boot/logging/logback/base.xml"/>
+
+    <!-- 鏅�氭棩蹇� -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.file.info}</file>
+        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織鍛藉悕:鍗曚釜鏂囦欢澶т簬256MB 鎸夌収鏃堕棿+鑷i 鐢熸垚log鏂囦欢 -->
+            <fileNamePattern>${log.path.info}${log.name.info}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>256MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!-- 鏈�澶т繚瀛樻椂闂达細30澶�-->
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
+        <append>true</append>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!-- 鏃ュ織绾у埆杩囨护鍣� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 杩囨护鐨勭骇鍒� -->
+            <level>INFO</level>
+            <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 閿欒鏃ュ織 -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.file.error}</file>
+        <!-- 寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠� -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 鏃ュ織鍛藉悕:鍗曚釜鏂囦欢澶т簬128MB 鎸夌収鏃堕棿+鑷i 鐢熸垚log鏂囦欢 -->
+            <fileNamePattern>${log.path.error}${log.name.error}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>128MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!-- 鏈�澶т繚瀛樻椂闂达細180澶�-->
+            <maxHistory>180</maxHistory>
+        </rollingPolicy>
+        <append>true</append>
+        <!-- 鏃ュ織鏍煎紡 -->
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!-- 鏃ュ織绾у埆杩囨护鍣� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 杩囨护鐨勭骇鍒� -->
+            <level>ERROR</level>
+            <!-- 鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛� -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛� -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 鎺у埗鍙� -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <!-- 鏃ュ織鏍煎紡 -->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!--姝ゆ棩蹇梐ppender鏄负寮�鍙戜娇鐢紝鍙厤缃渶搴曠骇鍒紝鎺у埗鍙拌緭鍑虹殑鏃ュ織绾у埆鏄ぇ浜庢垨绛変簬姝ょ骇鍒殑鏃ュ織淇℃伅-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <!-- 鍙湁杩欎釜鏃ュ織鏉冮檺鎵嶈兘鐪嬶紝sql璇彞 -->
+            <level>DEBUG</level>
+        </filter>
+    </appender>
+
+    <!-- 杈撳嚭sql鏃ュ織 -->
+    <logger name="com.apache.ibatis" level="DEBUG"></logger>
+
+    <!-- additivity:鏄惁鍦ㄧ埗(杩欓噷涓簉oot鑺傜偣)杈撳嚭, 榛樿 true; -->
+    <logger name="com.jcpim"  level="INFO"  additivity="true">
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+    </logger>
+
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+    </root>
+
+</configuration>

--
Gitblit v1.9.3