From f22a6d435a01ac137e4a79c08e78e3cdbc7bacd1 Mon Sep 17 00:00:00 2001 From: wanghui Date: Thu, 2 Mar 2023 10:46:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=BA=86=E5=8C=85=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 37 ++++++++++ pom.xml | 74 +++++++++++++++++++ .../qniao/zsh/ZtbSpiderHandleApplication.java | 20 +++++ .../CreateSpiderAdminCommandController.java | 29 ++++++++ .../SpiderStateAdminCommandController.java | 30 ++++++++ .../CreateSpiderApplicationService.java | 27 +++++++ .../SpiderStateApplicationService.java | 50 +++++++++++++ .../spiderstate/SpiderStateAggregate.java | 23 ++++++ .../spiderstate/entity/SpiderState.java | 29 ++++++++ .../repository/SpiderStateRepository.java | 19 +++++ .../config/SpiderDirectoryConfig.java | 27 +++++++ .../persistence/dao/SpiderStateDao.java | 14 ++++ .../SpiderStateRepositoryImpl.java | 44 +++++++++++ .../infrastructure/util/LinuxCommandUtil.java | 57 ++++++++++++++ src/main/resources/application-local.yml | 56 ++++++++++++++ src/main/resources/application.yml | 42 +++++++++++ src/main/resources/db.setting | 13 ++++ src/main/resources/logback.xml | 66 +++++++++++++++++ .../zsh/ZtbSpiderHandleApplicationTests.java | 13 ++++ 19 files changed, 670 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/com/qniao/zsh/ZtbSpiderHandleApplication.java create mode 100644 src/main/java/com/qniao/zsh/api/command/createspidera/admin/CreateSpiderAdminCommandController.java create mode 100644 src/main/java/com/qniao/zsh/api/command/startspider/admin/SpiderStateAdminCommandController.java create mode 100644 src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java create mode 100644 src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java create mode 100644 src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/SpiderStateAggregate.java create mode 100644 src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/entity/SpiderState.java create mode 100644 src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/repository/SpiderStateRepository.java create mode 100644 src/main/java/com/qniao/zsh/infrastructure/config/SpiderDirectoryConfig.java create mode 100644 src/main/java/com/qniao/zsh/infrastructure/persistence/dao/SpiderStateDao.java create mode 100644 src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java create mode 100644 src/main/java/com/qniao/zsh/infrastructure/util/LinuxCommandUtil.java create mode 100644 src/main/resources/application-local.yml create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/db.setting create mode 100644 src/main/resources/logback.xml create mode 100644 src/test/java/com/qniao/zsh/ZtbSpiderHandleApplicationTests.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e5018a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ +/.mvn/ +/logs/ +*.cmd +mvnw diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..2741733 --- /dev/null +++ b/pom.xml @@ -0,0 +1,74 @@ + + + 4.0.0 + + com.qniao + java-dependency + 0.0.1-SNAPSHOT + + ztb-spider-handle + 0.0.1-SNAPSHOT + ztb-spider-handle + ztb-spider-handle + + 1.8 + + + + com.qniao + spring-boot-starter + + + com.qniao + mybatis-plus-starter + + + com.qniao + xxl-job-starter + + + mysql + mysql-connector-java + runtime + + + org.springframework.boot + spring-boot-starter-test + + + io.swagger + swagger-annotations + + + + cn.hutool + hutool-all + 5.8.12 + + + cn.hutool + hutool-json + 5.8.12 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + maven-releases + Nexus releases Repository + http://120.78.76.88:8081/repository/maven-snapshots/ + + + + + diff --git a/src/main/java/com/qniao/zsh/ZtbSpiderHandleApplication.java b/src/main/java/com/qniao/zsh/ZtbSpiderHandleApplication.java new file mode 100644 index 0000000..eb33fc3 --- /dev/null +++ b/src/main/java/com/qniao/zsh/ZtbSpiderHandleApplication.java @@ -0,0 +1,20 @@ +package com.qniao.zsh; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author wh + * @date 2023/2/21 + * 启动主类 + */ +@SpringBootApplication(scanBasePackages = {"com.qniao.zsh"}) +@MapperScan("com.qniao.**.dao.**") +public class ZtbSpiderHandleApplication { + + public static void main(String[] args) { + SpringApplication.run(ZtbSpiderHandleApplication.class, args); + } + +} diff --git a/src/main/java/com/qniao/zsh/api/command/createspidera/admin/CreateSpiderAdminCommandController.java b/src/main/java/com/qniao/zsh/api/command/createspidera/admin/CreateSpiderAdminCommandController.java new file mode 100644 index 0000000..23a9c93 --- /dev/null +++ b/src/main/java/com/qniao/zsh/api/command/createspidera/admin/CreateSpiderAdminCommandController.java @@ -0,0 +1,29 @@ +package com.qniao.zsh.api.command.createspidera.admin; + +import com.qniao.zsh.application.service.createspider.CreateSpiderApplicationService; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author wh + * @date 2023/3/1 + */ +@RestController +@RequestMapping("admin") +public class CreateSpiderAdminCommandController { + @Resource + private CreateSpiderApplicationService createSpiderApplicationService; + + @ApiOperation("创建爬虫") + @PostMapping ("/create/spider/{spiderName}") + public String create(@PathVariable String spiderName){ + + return createSpiderApplicationService.create(spiderName); + + } +} diff --git a/src/main/java/com/qniao/zsh/api/command/startspider/admin/SpiderStateAdminCommandController.java b/src/main/java/com/qniao/zsh/api/command/startspider/admin/SpiderStateAdminCommandController.java new file mode 100644 index 0000000..c13baf6 --- /dev/null +++ b/src/main/java/com/qniao/zsh/api/command/startspider/admin/SpiderStateAdminCommandController.java @@ -0,0 +1,30 @@ +package com.qniao.zsh.api.command.startspider.admin; + +import com.qniao.zsh.application.service.startspider.SpiderStateApplicationService; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + + +/** + * @author wh + * @date 2023/2/21 + */ +@RestController +@RequestMapping("admin") +public class SpiderStateAdminCommandController { + + @Resource + private SpiderStateApplicationService spiderStateApplicationService; + + @ApiOperation("启动爬虫") + @PostMapping("/run/spider/{spiderName}") + public String run(@PathVariable String spiderName) throws Exception { + + return spiderStateApplicationService.run(spiderName); + + } +} + + diff --git a/src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java b/src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java new file mode 100644 index 0000000..ba347a5 --- /dev/null +++ b/src/main/java/com/qniao/zsh/application/service/createspider/CreateSpiderApplicationService.java @@ -0,0 +1,27 @@ +package com.qniao.zsh.application.service.createspider; + + +import cn.hutool.json.JSONUtil; +import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState; +import com.qniao.zsh.domain.aggregate.spiderstate.repository.SpiderStateRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @author wh + * @date 2023/3/1 + */ +@Service +public class CreateSpiderApplicationService { + + @Resource + private SpiderStateRepository spiderStateRepository; + public String create(String spiderName){ + SpiderState spiderState = new SpiderState(); + spiderState.setSpiderName(spiderName); + spiderStateRepository.save(spiderState); + return JSONUtil.toJsonStr(spiderStateRepository.load(spiderName)); + } + +} diff --git a/src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java b/src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java new file mode 100644 index 0000000..27c8b98 --- /dev/null +++ b/src/main/java/com/qniao/zsh/application/service/startspider/SpiderStateApplicationService.java @@ -0,0 +1,50 @@ +package com.qniao.zsh.application.service.startspider; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState; +import com.qniao.zsh.domain.aggregate.spiderstate.repository.SpiderStateRepository; +import com.qniao.zsh.infrastructure.util.LinuxCommandUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + + + +/** + * @author wh + * @date 2023/2/21 + * Linux 启动爬虫 + */ +@Slf4j +@Service +public class SpiderStateApplicationService { + + + + @Resource + private SpiderStateRepository spiderStateRepository; + + + public String run(String spiderName) throws Exception { + + //获取实体 + SpiderState spiderState = spiderStateRepository.load(spiderName); + //运行爬虫并返回结果 + String retStrBuilder = LinuxCommandUtil.startScrapy(spiderName); + //设置爬虫状态 + if (JSONUtil.isTypeJSON(retStrBuilder)) { + JSONObject jsonObject = JSONUtil.parseObj(retStrBuilder); + log.info(String.valueOf(jsonObject)); + spiderState.setStatus(1); + } else { + spiderState.setStatus(2); + log.info(retStrBuilder); + } + //更新数据库 + spiderStateRepository.save(spiderState); + + return retStrBuilder; + } +} diff --git a/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/SpiderStateAggregate.java b/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/SpiderStateAggregate.java new file mode 100644 index 0000000..e7eac44 --- /dev/null +++ b/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/SpiderStateAggregate.java @@ -0,0 +1,23 @@ +package com.qniao.zsh.domain.aggregate.spiderstate; + +import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState; +import com.qniao.zsh.domain.aggregate.spiderstate.repository.SpiderStateRepository; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @author wh + * 2023/2/22 + */ +@Service +public class SpiderStateAggregate { + + @Resource + private SpiderStateRepository spiderStateRepository; + + public void save (SpiderState spiderState) { + spiderStateRepository.save(spiderState); + } + +} diff --git a/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/entity/SpiderState.java b/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/entity/SpiderState.java new file mode 100644 index 0000000..e4d2a96 --- /dev/null +++ b/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/entity/SpiderState.java @@ -0,0 +1,29 @@ +package com.qniao.zsh.domain.aggregate.spiderstate.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.qniao.domain.Entity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModelProperty; + +/** + * @author Administrator + * @date 2023/2/21 + *爬虫状态数据库 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("spider_state") +public class SpiderState extends Entity { + + @ApiModelProperty("爬虫名字") + private String spiderName; + + @ApiModelProperty("爬取周期 默认 15 分钟") + private Integer cycle; + + @ApiModelProperty("状态 1-爬取成功 2-爬取失败 3-停止") + private Integer status; + + +} diff --git a/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/repository/SpiderStateRepository.java b/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/repository/SpiderStateRepository.java new file mode 100644 index 0000000..457aae3 --- /dev/null +++ b/src/main/java/com/qniao/zsh/domain/aggregate/spiderstate/repository/SpiderStateRepository.java @@ -0,0 +1,19 @@ +package com.qniao.zsh.domain.aggregate.spiderstate.repository; + +import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState; +import com.qniao.domain.Repository; + + +/** + * @author wh + * @date 2023/2/21 + */ +public interface SpiderStateRepository extends Repository { + + /** + * 用爬虫名字来读取数据库爬虫 + * @param spiderName 爬虫名字 + * @return 爬虫实体 + */ + SpiderState load(String spiderName); +} diff --git a/src/main/java/com/qniao/zsh/infrastructure/config/SpiderDirectoryConfig.java b/src/main/java/com/qniao/zsh/infrastructure/config/SpiderDirectoryConfig.java new file mode 100644 index 0000000..6f2513b --- /dev/null +++ b/src/main/java/com/qniao/zsh/infrastructure/config/SpiderDirectoryConfig.java @@ -0,0 +1,27 @@ +package com.qniao.zsh.infrastructure.config; + + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +/** + * @author wh + * @date 2023/2/28 + */ + +@Configuration +public class SpiderDirectoryConfig implements InitializingBean { + + @Value("${spier-dirdirectory}") + private String dir; + + public static String DIR; + + @Override + public void afterPropertiesSet() { + DIR = dir; + + + } +} diff --git a/src/main/java/com/qniao/zsh/infrastructure/persistence/dao/SpiderStateDao.java b/src/main/java/com/qniao/zsh/infrastructure/persistence/dao/SpiderStateDao.java new file mode 100644 index 0000000..5649609 --- /dev/null +++ b/src/main/java/com/qniao/zsh/infrastructure/persistence/dao/SpiderStateDao.java @@ -0,0 +1,14 @@ +package com.qniao.zsh.infrastructure.persistence.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState; + + +/** + * @author wh + * @date 2023/2/22 + */ +public interface SpiderStateDao extends BaseMapper { + + +} diff --git a/src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java b/src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java new file mode 100644 index 0000000..6e38157 --- /dev/null +++ b/src/main/java/com/qniao/zsh/infrastructure/persistence/repository/impl/SpiderState/SpiderStateRepositoryImpl.java @@ -0,0 +1,44 @@ +package com.qniao.zsh.infrastructure.persistence.repository.impl.SpiderState; + + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.qniao.zsh.domain.aggregate.spiderstate.entity.SpiderState; +import com.qniao.zsh.domain.aggregate.spiderstate.repository.SpiderStateRepository; +import com.qniao.zsh.infrastructure.persistence.dao.SpiderStateDao; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * @author wh + * @date 2023/2/22 + */ +@Service +public class SpiderStateRepositoryImpl implements SpiderStateRepository { + + @Resource + private SpiderStateDao spiderStateDao; + + + @Override + public SpiderState load(Long id) { + return spiderStateDao.selectById(id); + } + @Override + public SpiderState load(String spiderName) { + return spiderStateDao.selectOne(Wrappers.lambdaQuery(new SpiderState()).eq(SpiderState::getSpiderName, spiderName)); + } + + @Override + public Long save(SpiderState entity) { + if (!Objects.isNull(entity.getSpiderName())) { + spiderStateDao.updateById(entity); + } else { + spiderStateDao.insert(entity); + } + return entity.getId(); + } + + +} diff --git a/src/main/java/com/qniao/zsh/infrastructure/util/LinuxCommandUtil.java b/src/main/java/com/qniao/zsh/infrastructure/util/LinuxCommandUtil.java new file mode 100644 index 0000000..8e2784e --- /dev/null +++ b/src/main/java/com/qniao/zsh/infrastructure/util/LinuxCommandUtil.java @@ -0,0 +1,57 @@ +package com.qniao.zsh.infrastructure.util; + +import cn.hutool.core.text.StrBuilder; +import cn.hutool.core.util.StrUtil; +import com.qniao.zsh.infrastructure.config.SpiderDirectoryConfig; +import lombok.extern.slf4j.Slf4j; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; + +/** + * @author wh + * @date 2023/3/1 + */ + +@Slf4j +public class LinuxCommandUtil { + /** + * 运行scrapy的工具类 + * @param spiderName 爬虫名 + * @return 控制台输出 + * @throws IOException 线程 + */ + public static String startScrapy(String spiderName) throws IOException { + // 要执行的shell命令 + String scrapy = " scrapy crawl {} -s LOG_FILE=spider-debug.log "; + String command = StrUtil.format(scrapy,spiderName); + // 创建ProcessBuilder对象 + ProcessBuilder builder = new ProcessBuilder("/bin/sh", "-c", command); + //配置工作目录 + builder.directory(new File(SpiderDirectoryConfig.DIR)); + // 重定向标准输出和标准错误输出到Java进程 + builder.redirectErrorStream(true); + + // 启动进程 + Process process = builder.start(); + + + // 读取进程输出 + StrBuilder retStrBuilder = StrBuilder.create(); + BufferedReader processOutputReader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8)); + String readLine; + while ((readLine = processOutputReader.readLine()) != null) { + retStrBuilder.append(readLine).append(System.lineSeparator()); + log.info(readLine); + + } + + return retStrBuilder.toString(); + + + + } +} diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml new file mode 100644 index 0000000..f34d929 --- /dev/null +++ b/src/main/resources/application-local.yml @@ -0,0 +1,56 @@ +mysql-database-name: springboot +mysql-database-url: 52.81.89.46:3306 +mysql-user-name: root +mysql-user-password: 704177820 +redis-database-index: 2 +redis-host: 8.135.8.221 +redis-port: 6379 +eureka-enable: false +register-eureka-url: http://eureka:123456@127.0.0.1:8000/eureka/ +message-push-host: http://8.135.8.221:7050 +redis-password: qnredis +fake_captcha_enable: true + rabbitmq +rabbitmq-virtual-host: / +rabbitmq-host: 8.135.8.221 +rabbitmq-port: 5672 +rabbitmq-username: qniao +rabbitmq-password: Qianniao2020 +eureka.instance.ip-address: 47.113.118.47 + +# 服务器文件存放路径 +server-file-path: D:\Qniao + +xxl-job-executor-ip: 127.0.0.1 + + + + + +#xxl-job +#logging.config: classpath:logback.xml +### xxl-job admin address list, such as "http://address" or "http://address01,http://address02" +# 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册; +#xxl.job.admin.addresses: http://127.0.0.1:8808/xxl-job-admin +xxl.job.admin.addresses: http://xxl-job-admin-dev.qniao.cn/xxl-job-admin +# 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册 +xxl.job.executor.appname: ztb-factory-dev +# 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口; +xxl.job.executor.port: 9999 +### xxl-job executor log-path +#xxl.job.executor.logpath: /data/applogs/xxl-job/jobhandler +### xxl-job executor log-retention-days +xxl.job.executor.logretentiondays: 30 + +#开启驼峰命名规范自动映射 +configuration: + map-underscore-to-camel-case: true + +#win +#spier-dirdirectory: D:\Project\papernews_spider +#Linux +spier-dirdirectory: /opt/ztb-information-spider/papernews_spider + + + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..eaa6df0 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,42 @@ +server: + port: 7023 + + +server-file-path: /home/files/ + +xxl: + job: + admin: + # 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册; + addresses: http://xxl-job-admin-dev.qniao.cn/xxl-job-admin/ + executor: + # 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册 + appname: ztb-factory-test + # 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口; + port: 9788 + # 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能; + logretentiondays: 30 + # 当前服务器IP + # ip: 120.79.198.246 + ip: 120.79.170.129 + + +spring: + profiles: + active: local + datasource: + url: jdbc:mysql://52.81.89.46:3306/springboot?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowMultiQueries=true + #useSSL安全连接 useUnicode编码 characterEncoding编码格式 serverTimezone时区 + username: root + password: 704177820 + driver-class-name: com.mysql.cj.jdbc.Driver +#配置日志 +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +#开启驼峰命名规范自动映射 +configuration: + map-underscore-to-camel-case: true + + diff --git a/src/main/resources/db.setting b/src/main/resources/db.setting new file mode 100644 index 0000000..09c013f --- /dev/null +++ b/src/main/resources/db.setting @@ -0,0 +1,13 @@ +url = jdbc:mysql://52.81.89.46:3306/springboot +user = root +pass = 704177820 + +## 可选配置 +# 是否在日志中显示执行的SQL +showSql = true +# 是否格式化显示的SQL +formatSql = false +# 是否显示SQL参数 +showParams = true +# 打印SQL的日志等级,默认debug,可以是info、warn、error +sqlLevel = debug \ No newline at end of file diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..d64013a --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,66 @@ + + + + + ./logs/log.log + + INFO + + + ./logs/log.%d{yyyy-MM-dd}.log + 15 + + + [%d{yyyy-MM-dd HH:mm:ss:SSS}] %thread %level %logger{36} %L - %msg%n + UTF-8 + + + + + + ERROR + + + ./logs/error.%d{yyyy-MM-dd}.log + 15 + + + UTF-8 + [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} : %msg%n + + + + + [%d{yyyy-MM-dd HH:mm:ss:SSS}] %thread %level %logger{36} %L - %msg%n + UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/com/qniao/zsh/ZtbSpiderHandleApplicationTests.java b/src/test/java/com/qniao/zsh/ZtbSpiderHandleApplicationTests.java new file mode 100644 index 0000000..00f102f --- /dev/null +++ b/src/test/java/com/qniao/zsh/ZtbSpiderHandleApplicationTests.java @@ -0,0 +1,13 @@ +package com.qniao.zsh; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ZtbSpiderHandleApplicationTests { + + @Test + void contextLoads() { + } + +}