项目结构
ruoyi-admin
pox.xml (环境配置)
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>ruoyi</artifactId> <groupId>com.ruoyi</groupId> <version>3.8.2</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> <artifactId>ruoyi-admin</artifactId> <description> web服务入口 </description> <dependencies> <!-- spring-boot-devtools --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 表示依赖不会传递 --> </dependency> <!-- swagger3--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> </dependency> <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 --> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.6.2</version> </dependency> <!-- Mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 核心模块--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-framework</artifactId> </dependency> <!-- 定时任务--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-quartz</artifactId> </dependency> <!-- 代码生成--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-generator</artifactId> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- <dependency>--> <!-- <groupId>com.aspose</groupId>--> <!-- <artifactId>cells</artifactId>--> <!-- <scope>system</scope>--> <!-- <systemPath>${project.basedir}/src/main/resources/lib/aspose-cells-8.5.2.jar</systemPath>--> <!-- <version>8.5.2</version>--> <!-- </dependency>--> <dependency> <groupId>com.aspose.cells</groupId> <artifactId>aspose-cells</artifactId> <version>20.4 - c</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/aspose-cells-20.4 - c.jar</systemPath> </dependency> <dependency> <groupId>com.aspose.words</groupId> <artifactId>aspose-words</artifactId> <version>words-18.10-jdk16</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/aspose-words-18.10-jdk16.jar</systemPath> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version> </dependency> </dependencies> <build> <plugins> <!-- <plugin>--> <!-- <groupId>org.apache.maven.plugins</groupId>--> <!-- <artifactId>maven-resources-plugin</artifactId>--> <!-- <configuration>--> <!-- <encoding>${project.build.sourceEncoding}</encoding>--> <!-- <!– 不需要使用变量替换掉的前缀标识 –>--> <!-- <escapeString>\</escapeString>--> <!-- <!– 不需要过滤的文件扩展名。如果不过滤,会进行变量替换,像证书之类的,一定要处理 –>--> <!-- <nonFilteredFileExtensions>--> <!-- <nonFilteredFileExtension>p12</nonFilteredFileExtension>--> <!-- <nonFilteredFileExtension>pem</nonFilteredFileExtension>--> <!-- </nonFilteredFileExtensions>--> <!-- <resources>--> <!-- <!– 控制好资源文件 –>--> <!-- <resource>--> <!-- <directory>${basedir}/src/main/resources</directory>--> <!-- <targetPath>BOOT-INF/classes</targetPath>--> <!-- <!– 默认不写包含所有,如果写了,那就只包含写的 –>--> <!-- <!–<includes>--> <!-- <include>**/*.p12</include>--> <!-- <include>**/*.yml</include>--> <!-- <include>**/*.xml</include>--> <!-- </includes>–>--> <!-- <excludes>--> <!-- <!– 排除掉 –>--> <!-- <exclude>**/lib/**</exclude>--> <!-- </excludes>--> <!-- <filtering>true</filtering>--> <!-- </resource>--> <!-- <!– 把第三方 Jar 引导进入指定位置 –>--> <!-- <resource>--> <!-- <directory>${basedir}/src/main/resources</directory>--> <!-- <targetPath>BOOT-INF</targetPath>--> <!-- <!– 默认不写包含所有,如果写了,那就只包含写的 –>--> <!-- <includes>--> <!-- <include>**/*.jar</include>--> <!-- </includes>--> <!-- <filtering>false</filtering>--> <!-- </resource>--> <!-- </resources>--> <!-- </configuration>--> <!-- </plugin>--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.1.1.RELEASE</version> <configuration> <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 --> <includeSystemScope>true</includeSystemScope> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.1.0</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <warName>${project.artifactId}</warName> </configuration> </plugin> </plugins> <finalName>${project.artifactId}</finalName> </build> <profiles> <!--开发--> <profile> <id>dev</id> <properties> <maven.profiles.activation>dev</maven.profiles.activation> <logback.project.level>INFO</logback.project.level> <logback.spring.level>INFO</logback.spring.level> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <finalName>${project.name}-${project.version}</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> </profile> <!--测试--> <profile> <id>test</id> <properties> <maven.profiles.activation>test</maven.profiles.activation> <logback.project.level>INFO</logback.project.level> <logback.spring.level>INFO</logback.spring.level> </properties> <build> <finalName>${project.name}-${project.version}</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> </profile> <!--生产--> <profile> <id>pro</id> <properties> <maven.profiles.activation>pro</maven.profiles.activation> <logback.project.level>INFO</logback.project.level> <logback.spring.level>INFO</logback.spring.level> </properties> <build> <finalName>${project.name}-${project.version}</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> </profile> </profiles> </project>
application.yml (数据库连接配置)
# 项目相关配置 ruoyi: # 名称 name: RuoYi # 版本 version: 3.8.2 # 版权年份 copyrightYear: 2022 # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) # profile: D:/ruoyi/uploadPath profile: /data/ruoyidata # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 captchaType: math # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 8080 servlet: # 应用的访问路径 context-path: /stage-api tomcat: # tomcat的URI编码 uri-encoding: UTF-8 # 连接数满后的排队数,默认为100 accept-count: 1000 threads: # tomcat最大线程数,默认为200 max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 # 日志配置 logging: level: com.ruoyi: debug org.springframework: warn # Spring配置 spring: # 资源信息 messages: # 国际化资源文件路径 basename: i18n/messages profiles: active: pro # active: local # 文件上传 servlet: multipart: # 单个文件大小 max-file-size: 10MB # 设置总上传的文件大小 max-request-size: 20MB # 服务模块 devtools: restart: # 热部署开关 enabled: true # redis 配置 redis: # 地址 host: '127.0.0.1' # 端口,默认为6379 port: 6379 # 数据库索引 database: 0 # 密码 password: '123456' # 连接超时时间 timeout: 10s lettuce: pool: # 连接池中的最小空闲连接 min-idle: 0 # 连接池中的最大空闲连接 max-idle: 8 # 连接池的最大数据库连接数 max-active: 8 # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms # token配置 token: # 令牌自定义标识 header: Authorization # 令牌密钥 secret: abcdefghijklmnopqrstuvwxyz # 令牌有效期(默认30分钟) expireTime: 600 # MyBatis配置 mybatis: # 搜索指定包别名 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml # PageHelper分页插件 pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql # Swagger配置 swagger: # 是否开启swagger enabled: true # 请求前缀 pathMapping: /dev-api # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/*
application.yml (数据库连接配置)
# 项目相关配置 ruoyi: # 名称 name: RuoYi # 版本 version: 3.8.2 # 版权年份 copyrightYear: 2022 # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) # profile: D:/ruoyi/uploadPath profile: D:/ruoyi/uploadPath swprofile: D:/ruoyi/uploadPath/ swdataprofile: D:/ruoyi/uploadPath/data/ # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 captchaType: math # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 8080 servlet: # 应用的访问路径 context-path: /stage-api tomcat: # tomcat的URI编码 uri-encoding: UTF-8 # 连接数满后的排队数,默认为100 accept-count: 1000 threads: # tomcat最大线程数,默认为200 max: 800 # Tomcat启动初始化的线程数,默认值10 min-spare: 100 # 日志配置 logging: level: com.ruoyi: debug org.springframework: warn # Spring配置 spring: # 资源信息 messages: # 国际化资源文件路径 basename: i18n/messages datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: # 主库数据源 master: url: jdbc:mysql://127.0.0.1:3306/sk_wms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 username: root password: '123456' # 从库数据源 slave: # 从数据源开关/默认关闭 enabled: false url: username: password: # 初始连接数 initialSize: 5 # 最小连接池数量 minIdle: 10 # 最大连接池数量 maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一个连接在池中最大生存的时间,单位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置检测连接是否有效 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置白名单,不填则允许所有访问 allow: url-pattern: /druid/* # 控制台管理用户名和密码 login-username: ruoyi login-password: 123456 filter: stat: enabled: true # 慢SQL记录 log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true # 文件上传 servlet: multipart: # 单个文件大小 max-file-size: 10MB # 设置总上传的文件大小 max-request-size: 20MB # 服务模块 devtools: restart: # 热部署开关 enabled: true # redis 配置 redis: # 地址 host: '127.0.0.1' # 端口,默认为6379 port: 6379 # 数据库索引 database: 0 # 密码 password: '123456' # 连接超时时间 timeout: 10s lettuce: pool: # 连接池中的最小空闲连接 min-idle: 0 # 连接池中的最大空闲连接 max-idle: 8 # 连接池的最大数据库连接数 max-active: 8 # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms # token配置 token: # 令牌自定义标识 header: Authorization # 令牌密钥 secret: abcdefghijklmnopqrstuvwxyz # 令牌有效期(默认30分钟) expireTime: 10080 # MyBatis配置 mybatis: # 搜索指定包别名 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml # PageHelper分页插件 pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql # Swagger配置 swagger: # 是否开启swagger enabled: true # 请求前缀 pathMapping: /dev-api # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/*