項(xiàng)目介紹

2019-03-30 14:34 更新

文件結(jié)構(gòu)

com.ruoyi     
├── common            // 工具類
│       └── annotation                    // 自定義注解
│       └── config                        // 全局配置
│       └── constant                      // 通用常量
│       └── core                          // 核心控制
│       └── enums                         // 通用枚舉
│       └── exception                     // 通用異常
│       └── json                          // JSON數(shù)據(jù)處理
│       └── utils                         // 通用類處理
│       └── xss                           // XSS過濾處理
├── framework         // 框架核心
│       └── aspectj                       // 注解實(shí)現(xiàn)
│       └── config                        // 系統(tǒng)配置
│       └── datasource                    // 數(shù)據(jù)權(quán)限
│       └── manager                       // 異步處理
│       └── shiro                         // 權(quán)限控制
│       └── util                          // 通用工具
│       └── web                           // 前端控制
├── ruoyi-generator   // 代碼生成(可移除)
├── ruoyi-quartz      // 定時(shí)任務(wù)(可移除)
├── ruoyi-system      // 系統(tǒng)代碼
├── ruoyi-admin       // 后臺服務(wù)
├── ruoyi-xxxxxx      // 其他模塊

配置文件

通用配置 application.yml

## 項(xiàng)目相關(guān)配置
ruoyi:
  # 名稱
  name: RuoYi
  # 版本
  version: 3.2.0
  # 版權(quán)年份
  copyrightYear: 2019
  # 文件上傳
  profile: D:/profile/
  # 獲取ip地址開關(guān)
  addressEnabled: true


## 開發(fā)環(huán)境配置
server:
  # 服務(wù)端口
  port: 80
  servlet:
    # 項(xiàng)目contextPath
    context-path: /
  tomcat:
    # tomcat的URI編碼
    uri-encoding: UTF-8
    # tomcat最大線程數(shù),默認(rèn)為200
    max-threads: 800
    # Tomcat啟動初始化的線程數(shù),默認(rèn)值25
    min-spare-threads: 30

 
## 日志配置
logging:
  level:
    com.ruoyi: debug
    org.springframework: WARN
    org.spring.springboot.dao: debug


## 用戶配置
user:
  password:
    # 密碼錯(cuò)誤{maxRetryCount}次鎖定10分鐘
    maxRetryCount: 5


## Spring配置
spring:
  # 模板引擎
  thymeleaf:
    mode: HTML
    encoding: utf-8
    # 禁用緩存
    cache: false
  # 資源信息
  messages:
    # 國際化資源文件路徑
    basename: i18n/messages
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
  profiles: 
    active: druid
  # 文件上傳
  servlet:
     multipart:
       max-file-size:  30MB
       max-request-size:  30MB
  # 服務(wù)模塊
  devtools:
    restart:
      # 熱部署開關(guān)
      enabled: true


## MyBatis
mybatis:
    # 搜索指定包別名
    typeAliasesPackage: com.ruoyi
    # 配置mapper的掃描,找到所有的mapper.xml映射文件
    mapperLocations: classpath*:mapper/**/*Mapper.xml
    # 加載全局的配置文件
    configLocation: classpath:mapper/mybatis-config.xml


## PageHelper分頁插件
pagehelper: 
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql 


## Shiro
shiro:
  user:
    # 登錄地址
    loginUrl: /login
    # 權(quán)限認(rèn)證失敗地址
    unauthorizedUrl: /unauth
    # 首頁地址
    indexUrl: /index
    # 驗(yàn)證碼開關(guān)
    captchaEnabled: true
    # 驗(yàn)證碼類型 math 數(shù)組計(jì)算 char 字符
    captchaType: math
  cookie:
    # 設(shè)置Cookie的域名 默認(rèn)空,即當(dāng)前訪問的域名
    domain: 
    # 設(shè)置cookie的有效訪問路徑
    path: /
    # 設(shè)置HttpOnly屬性
    httpOnly: true
    # 設(shè)置Cookie的過期時(shí)間,天為單位
    maxAge: 30
  session:
    # Session超時(shí)時(shí)間(默認(rèn)30分鐘)
    expireTime: 30
    # 同步session到數(shù)據(jù)庫的周期(默認(rèn)1分鐘)
    dbSyncPeriod: 1
    # 相隔多久檢查一次session的有效性,默認(rèn)就是10分鐘
    validationInterval: 10


## 防止XSS攻擊
xss: 
  # 過濾開關(guān)
  enabled: true
  # 排除鏈接(多個(gè)用逗號分隔)
  excludes: /system/notice/*
  # 匹配鏈接
  urlPatterns: /system/*,/monitor/*,/tool/*

數(shù)據(jù)源配置 application-druid.yml

## 數(shù)據(jù)源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主庫數(shù)據(jù)源
            master:
                url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: password
            # 從庫數(shù)據(jù)源
            slave:
                # 從數(shù)據(jù)源開關(guān)/默認(rèn)關(guān)閉
                enabled: false
                url: 
                username: 
                password: 
            # 初始連接數(shù)
            initialSize: 5
            # 最小連接池?cái)?shù)量
            minIdle: 10
            # 最大連接池?cái)?shù)量
            maxActive: 20
            # 配置獲取連接等待超時(shí)的時(shí)間
            maxWait: 60000
            # 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一個(gè)連接在池中最大生存的時(shí)間,單位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置檢測連接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter: 
                enabled: true
            statViewServlet:
                enabled: true
                # 設(shè)置白名單,不填則允許所有訪問
                allow:
                url-pattern: /monitor/druid/*
            filter:
                stat:
                    enabled: true
                    # 慢SQL記錄
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true

代碼生成配置 generator.yml

## 代碼生成
gen: 
  # 作者
  author: ruoyi
  # 默認(rèn)生成包路徑 system 需改成自己的模塊名稱 如 system monitor tool
  packageName: com.ruoyi.system
  # 自動去除表前綴,默認(rèn)是true
  autoRemovePre: true
  # 表前綴(類名不會包含表前綴)
  tablePrefix: sys_

核心技術(shù)

SpringBoot框架 {docsify-ignore}

1、介紹
Spring Boot是一款開箱即用框架,提供各種默認(rèn)配置來簡化項(xiàng)目配置。讓我們的Spring應(yīng)用變的更輕量化、更快的入門。 在主程序執(zhí)行main函數(shù)就可以運(yùn)行。你也可以打包你的應(yīng)用為jar并通過使用java -jar來運(yùn)行你的Web應(yīng)用。它遵循"約定優(yōu)先于配置"的原則, 使用SpringBoot只需很少的配置,大部分的時(shí)候直接使用默認(rèn)的配置即可。可以與Spring Cloud的微服務(wù)無縫結(jié)合。
Spring Boot2.0 環(huán)境要求必須是jdk8或以上版本,Tomcat8或以上版本

2、優(yōu)點(diǎn)

  • 使編碼變得簡單: 推薦使用注解。
  • 使配置變得簡單: 自動配置、快速構(gòu)建項(xiàng)目、快速集成新技術(shù)能力 沒有冗余代碼生成和XML配置的要求
  • 使部署變得簡單: 內(nèi)嵌Tomcat、Jetty、Undertow等web容器,無需以war包形式部署
  • 使監(jiān)控變得簡單: 自帶項(xiàng)目監(jiān)控

Shiro安全控制 {docsify-ignore}

1、介紹
Apache Shiro是Java的一個(gè)安全框架。Shiro可以幫助我們完成:認(rèn)證、授權(quán)、加密、會話管理、與Web集成、緩存等。其不僅可以用在 JavaSE環(huán)境,也可以用在 JavaEE 環(huán)境。

2、優(yōu)點(diǎn)

  • 易于理解的 Java Security API
  • 簡單的身份認(rèn)證,支持多種數(shù)據(jù)源
  • 對角色的簡單的授權(quán),支持細(xì)粒度的授權(quán)
  • 不跟任何的框架或者容器捆綁,可以獨(dú)立運(yùn)行

Thymeleaf摸版 {docsify-ignore}

1、介紹
Thymeleaf是一個(gè)用于Web和獨(dú)立Java環(huán)境的模板引擎,能夠處理HTML、XML、JavaScript、CSS甚至純文本。能輕易的與Spring MVC等Web框架進(jìn)行集成作為Web應(yīng)用的模板引擎。 與其它模板引擎(比如FreeMaker)相比,Thymeleaf最大的特點(diǎn)是能夠直接在瀏覽器中打開并正確顯示模板頁面,而不需要啟動整個(gè)Web應(yīng)用(更加方便前后端分離,比如方便類似VUE前端設(shè)計(jì)頁面),拋棄JSP吧。 Thymeleaf 3.0是一個(gè)完全徹底重構(gòu)的模板引擎,極大的減少內(nèi)存占用和提升性能和并發(fā)性,避免v2.1版因大量的輸出標(biāo)記的集合產(chǎn)生的資源占用。 Thymeleaf 3.0放棄了大多數(shù)面向DOM的處理機(jī)制,變成了一個(gè)基于事件的模板處理器,它通過處理模板標(biāo)記或文本并立即生成其輸出,甚至在新事件之前響應(yīng)模板解析器/緩存事件。Thymeleaf是Spring Boot官方的推薦使用模板。

2、優(yōu)點(diǎn)

  • 國際化支持非常簡單
  • 語法簡單,功能強(qiáng)大。內(nèi)置大量常用功能,使用非常方便
  • 可以很好的和Spring集成
  • 靜態(tài)html嵌入標(biāo)簽屬性,瀏覽器可以直接打開模板文件,便于前后端聯(lián)調(diào)
  • Spring Boot 官方推薦,用戶群廣
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號