From ddcf20eb851948cbac0f89244c797600a13d248a Mon Sep 17 00:00:00 2001 From: wxdgaming <492794628@qq.com> Date: Sat, 3 Aug 2024 11:06:29 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=B5=8B=E8=AF=95=E3=80=91spring=20da?= =?UTF-8?q?ta=20jpa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wxdgaming.boot.spring/.idea/compiler.xml | 4 ++- wxdgaming.boot.spring/.idea/dataSources.xml | 14 +++++++++ wxdgaming.boot.spring/.idea/encodings.xml | 28 ----------------- wxdgaming.boot.spring/.idea/misc.xml | 8 ----- wxdgaming.boot.spring/.idea/modules.xml | 9 ------ .../boot/spring/data/DataSourceConfig.java | 5 ++-- .../boot/spring/data/ManagerFactory.java | 22 +++++++------- .../boot/spring/data/entity/log/ApiLog.java | 30 +++++++++++++++++++ .../spring/data/{ => entity}/user/User.java | 2 +- .../data/repository/ApiLogRepository.java | 16 ++++++++++ .../data/repository/UserRepository.java | 3 +- .../spring/data/service/UserServiceImpl.java | 14 --------- .../boot/spring/starter/BootStarter.java | 1 - .../spring/starter/core/ApiLogAspect.java | 6 ++++ .../spring/starter/service/GMController.java | 13 ++++++++ .../src/main/resources/application.yml | 4 +-- .../src/main/resources/logback-spring.xml | 1 + 17 files changed, 101 insertions(+), 79 deletions(-) delete mode 100644 wxdgaming.boot.spring/.idea/modules.xml create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/entity/log/ApiLog.java rename wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/{ => entity}/user/User.java (91%) create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/ApiLogRepository.java delete mode 100644 wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/service/UserServiceImpl.java diff --git a/wxdgaming.boot.spring/.idea/compiler.xml b/wxdgaming.boot.spring/.idea/compiler.xml index 6585733..0c637ee 100644 --- a/wxdgaming.boot.spring/.idea/compiler.xml +++ b/wxdgaming.boot.spring/.idea/compiler.xml @@ -2,6 +2,7 @@ + @@ -21,6 +22,7 @@ + @@ -50,7 +52,7 @@ - + diff --git a/wxdgaming.boot.spring/.idea/dataSources.xml b/wxdgaming.boot.spring/.idea/dataSources.xml index 372a156..a544143 100644 --- a/wxdgaming.boot.spring/.idea/dataSources.xml +++ b/wxdgaming.boot.spring/.idea/dataSources.xml @@ -13,5 +13,19 @@ $ProjectFileDir$ + + mysql.8 + true + true + $PROJECT_DIR$/wxdgaming.boot.spring.starter/src/main/resources/application.yml + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306/mydb?createDatabaseIfNotExist=true + + + + + + $ProjectFileDir$ + \ No newline at end of file diff --git a/wxdgaming.boot.spring/.idea/encodings.xml b/wxdgaming.boot.spring/.idea/encodings.xml index 9164127..5af20ee 100644 --- a/wxdgaming.boot.spring/.idea/encodings.xml +++ b/wxdgaming.boot.spring/.idea/encodings.xml @@ -1,47 +1,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/wxdgaming.boot.spring/.idea/misc.xml b/wxdgaming.boot.spring/.idea/misc.xml index ab68e1e..767618a 100644 --- a/wxdgaming.boot.spring/.idea/misc.xml +++ b/wxdgaming.boot.spring/.idea/misc.xml @@ -6,16 +6,8 @@ - diff --git a/wxdgaming.boot.spring/.idea/modules.xml b/wxdgaming.boot.spring/.idea/modules.xml deleted file mode 100644 index 58cbc47..0000000 --- a/wxdgaming.boot.spring/.idea/modules.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/DataSourceConfig.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/DataSourceConfig.java index af0bbed..1b43f40 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/DataSourceConfig.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/DataSourceConfig.java @@ -16,10 +16,11 @@ import javax.sql.DataSource; **/ @Configuration public class DataSourceConfig { + @Bean - @ConfigurationProperties("spring.datasource") @Primary - DataSource dsOne() { + @ConfigurationProperties("spring.datasource") + public DataSource dsOne() { return DruidDataSourceBuilder.create().build(); } } diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/ManagerFactory.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/ManagerFactory.java index 34cda25..051a2a4 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/ManagerFactory.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/ManagerFactory.java @@ -17,18 +17,18 @@ public class ManagerFactory { @Resource(name = "dsOne") DataSource dsOne; - @Autowired JpaProperties jpaProperties; + @Resource JpaProperties jpaProperties; - @Bean - @Primary - LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) { - return builder - .dataSource(dsOne) - .properties(jpaProperties.getProperties()) - .packages("wxdgaming.boot.spring.data") - .persistenceUnit("pu1") - .build(); - } + // @Bean + // @Primary + // LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) { + // return builder + // .dataSource(dsOne) + // .properties(jpaProperties.getProperties()) + // .packages("wxdgaming.boot.spring.data") + // .persistenceUnit("pu1") + // .build(); + // } } diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/entity/log/ApiLog.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/entity/log/ApiLog.java new file mode 100644 index 0000000..40e13a6 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/entity/log/ApiLog.java @@ -0,0 +1,30 @@ +package wxdgaming.boot.spring.data.entity.log; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 操作日志 + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2024-08-03 10:35 + **/ +@Data +@Accessors(chain = true) +@Entity +@Table +public class ApiLog { + @Id + private long uid; + + private String url; + private String path; + private String method; + private String contentType; + private String ip; + private String params; + +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/user/User.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/entity/user/User.java similarity index 91% rename from wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/user/User.java rename to wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/entity/user/User.java index ea31f9e..e030e11 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/user/User.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/entity/user/User.java @@ -1,4 +1,4 @@ -package wxdgaming.boot.spring.data.user; +package wxdgaming.boot.spring.data.entity.user; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/ApiLogRepository.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/ApiLogRepository.java new file mode 100644 index 0000000..8810173 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/ApiLogRepository.java @@ -0,0 +1,16 @@ +package wxdgaming.boot.spring.data.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +import wxdgaming.boot.spring.data.entity.log.ApiLog; + +/** + * 日志记录 + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2024-08-03 10:36 + **/ +@Repository +public interface ApiLogRepository extends JpaRepository { + +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/UserRepository.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/UserRepository.java index 759977c..f7bf88a 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/UserRepository.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/repository/UserRepository.java @@ -1,9 +1,8 @@ package wxdgaming.boot.spring.data.repository; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; -import wxdgaming.boot.spring.data.user.User; +import wxdgaming.boot.spring.data.entity.user.User; /** * s diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/service/UserServiceImpl.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/service/UserServiceImpl.java deleted file mode 100644 index b8b8d58..0000000 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.data/src/main/java/wxdgaming/boot/spring/data/service/UserServiceImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package wxdgaming.boot.spring.data.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import wxdgaming.boot.spring.data.repository.UserRepository; - -/** - * @author: wxd-gaming(無心道, 15388152619) - * @version: 2024-08-02 19:51 - **/ -@Component -public class UserServiceImpl { - @Autowired private UserRepository userRepository; -} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java index 4e892c7..13f580b 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java @@ -21,7 +21,6 @@ import wxdgaming.boot.spring.starter.service.batis.RedisService; @EnableAsync @EnableScheduling @EntityScan("wxdgaming.boot.spring.data") -@EnableTransactionManagement @EnableJpaRepositories("wxdgaming.boot.spring.data") @SpringBootApplication( scanBasePackages = {"wxdgaming.boot.spring"}, diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/core/ApiLogAspect.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/core/ApiLogAspect.java index 9c1f006..7ca91bd 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/core/ApiLogAspect.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/core/ApiLogAspect.java @@ -1,5 +1,6 @@ package wxdgaming.boot.spring.starter.core; +import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -7,10 +8,13 @@ import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import wxdgaming.boot.spring.data.entity.log.ApiLog; +import wxdgaming.boot.spring.data.repository.ApiLogRepository; import java.util.List; import java.util.Map; @@ -29,6 +33,8 @@ import java.util.stream.Stream; @Component public class ApiLogAspect { + // @Autowired ApiLogRepository apiLogRepository; + /** * 切入连接点,使用固定 controller层下的所有文件 */ diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java index 323af03..e60f716 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java @@ -6,6 +6,8 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import wxdgaming.boot.spring.data.entity.log.ApiLog; +import wxdgaming.boot.spring.data.repository.ApiLogRepository; import wxdgaming.boot.spring.data.repository.UserRepository; import wxdgaming.boot.spring.starter.BootStarter; @@ -19,6 +21,7 @@ import wxdgaming.boot.spring.starter.BootStarter; public class GMController { @Autowired UserRepository userRepository; + @Autowired ApiLogRepository apiLogRepository; @ResponseBody @@ -32,6 +35,16 @@ public class GMController { @RequestMapping("/reload/lua") public String reload_lua(HttpServletRequest httpServletRequest, @RequestBody(required = false) String body) throws Exception { + + ApiLog apiLog = new ApiLog(); + apiLog.setUid(System.nanoTime()) + .setIp("127.0.0.1") + .setContentType(httpServletRequest.getHeader("content-type")) + .setUrl(httpServletRequest.getRequestURI()) + .setPath(httpServletRequest.getServletPath()) + .setMethod(httpServletRequest.getMethod()) + .setParams(body); + apiLogRepository.save(apiLog); return "ok"; } diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/application.yml b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/application.yml index 1616f4a..a8663b0 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/application.yml +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/application.yml @@ -21,14 +21,14 @@ spring: exclude: - org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration datasource: - url: jdbc:mysql://localhost:3306/mydb?createDatabaseIfNotExist=true + url: jdbc:mysql://localhost:3306/mydb?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false username: root password: test driver-class-name: com.mysql.cj.jdbc.Driver jpa: database: mysql show-sql: true - database-platform: org.hibernate.dialect.MySQL5InnoDBDialect +# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect hibernate: ddl-auto: update task: diff --git a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/logback-spring.xml b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/logback-spring.xml index 4e985d6..d984b9d 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/logback-spring.xml +++ b/wxdgaming.boot.spring/wxdgaming.boot.spring.starter/src/main/resources/logback-spring.xml @@ -55,6 +55,7 @@ +