人人開源框架學習筆記


框架介紹

三個框架

人人框架總共分為三個,分別是: renren-security、 renren-fast、 renren-generator。

根據官方的介紹,

renren-security和renren-fast的區別

官方介紹

運行效果

renren-security(開源版)在本機部署之后的頁面:

renren-fast 在本機部署之后的頁面:

差異總結

它們之間的區別如下:

  • 功能上
    • security(開源版)比fast多了部門管理字典管理
    • fast支持多標簽頁打開和切換,security(開源版)只能打開一個標簽頁,不能通過標簽頁直接切換頁面
  • 部署方式上,security是前后端一起部署的,而fast是前后端分開部署的
  • 頁面風格上,security有AdminLTE和Layui兩種主題,而fast有AdminLTE和Element UI兩種主題

renren-security三個版本的差異

官方介紹

運行效果

renren-security開源版運行效果:

renren-security企業常規版運行效果:

renren-security企業專業版運行效果:

差異總結

  • 功能上
    • 企業版比開源版多了登錄日志異常日志
    • 企業版比開源版多支持了短信郵件發送郵件模板郵件發送記錄Excel導出工作流富文本繁體中文、English 的國際化
    • 企業版比開源版在文件上傳上額外支持騰訊雲、FastDFS、本地存儲
    • 企業版在 XSS過濾 、 功能權限 、 數據權限 、 Redis支持 、 swagger支持 、代碼質量上表現更好
    • 開源版只能打開一個標簽頁,但是有面包屑導航;專業版可以打開多個標簽頁,但是沒有面包屑導航
    • 企業專業版基於Token進行認證,企業常規版和開源版都基於Session進行認證
  • 部署方式上,企業專業版前后端分離部署
  • 頁面風格上,開源版為 AdminLTE 主題,兩個企業版都是 Element-ui 主題

renren-security企業版和renren-fast的差異

  • 功能上, renren-security企業版相比renren-fast多了部門管理、字典管理、行政區域、工作流、消息管理、登錄日志、異常日志

renren-security開源版

項目組成

renren-security開源版有五個部分組成:

  • renren-common:公共模塊,提供公共類和工具
  • renren-admin:管理后台模塊,系統的核心部分,開發的后台管理系統
  • renren-api:接口模塊,為移動端提供接口,不和admin模塊共享用戶
  • renren-generator:代碼生成器,可以直接根據MySQL表生成CRUD的后台代碼和前端頁面
  • renren-dynamic-datasource

項目部署

環境准備

JDK安裝和配置

https://www.cnblogs.com/nojacky/p/9497724.html

  1. 下載JDK
  2. 安裝提示在指定位置安裝JDK
  3. 配置環境變量
    • JAVA_HOME:Java的安裝路徑
    • CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
    • Path:%JAVA_HOME%\bin;(追加,要放第一位)

MySQL的安裝和配置

https://www.runoob.com/mysql/mysql-install.html

  1. 下載MySQL

  2. 安裝MySQL

    1. 解壓MySQL

    2. 在解壓目錄下創建my.ini文件

      [client]
      # 設置mysql客戶端默認字符集
      default-character-set=utf8
       
      [mysqld]
      # 設置3306端口
      port = 3306
      # 設置mysql的安裝目錄
      basedir=E:\\tmp\\MySQL\\mysql-8.0.18-winx64
      # 允許最大連接數
      max_connections=20
      # 服務端使用的字符集默認為8比特編碼的latin1字符集
      character-set-server=utf8
      # 創建新表時將使用的默認存儲引擎
      default-storage-engine=INNODB
      
    3. CMD 到MySQL解壓目錄的bin目錄下

    4. 執行命令:mysqld --initialize --console

    5. 執行命令:mysqld install

    6. 啟動MySQL(net start mysql)

  3. 配置MySQL

    1. 使用初始密碼按照提示進入MySQL
    2. 修改root的初始密碼:set password for root@localhost = '123456';

Maven的安裝和配置

https://www.runoob.com/maven/maven-setup.html

  1. 下載Maven
  2. 安裝Maven
  3. 配置Maven
    • M2_HOME:maven解壓目錄
    • Path:%M2_HOME%\bin;(追加)

Git的安裝和配置

  1. 下載Git
  2. 安裝Git

將項目導入編輯器(IDEA)

  1. 下載和安裝IDEA

  2. 配置IDEA的maven、git

    • maven

    • git

  3. 導入項目

    直接在IDEA中國通過GIT下載和導入

運行項目

數據庫初始化准備(MySQL)

  1. 創建數據庫:create database renren_security;
  2. 查看數據庫:show create database renren_security;
  3. 指定數據庫:use renren_security;
  4. 運行SQL文件: source C:\Users\admin\Downloads\renrenio-renren-security-master\renren-security\renren-admin\db\mysql.sql;(source后面接sql文件的路徑)

啟動renren-admin模塊

  1. 修改配置文件:renren-security\renren-admin\src\main\resources\application-dev.yml

    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
          ## 這里修改成本機MySQL的用戶名和密碼
          username: renren
          password: 123456
          initial-size: 10
          max-active: 100
          min-idle: 10
          max-wait: 60000
          pool-prepared-statements: true
          max-pool-prepared-statement-per-connection-size: 20
          time-between-eviction-runs-millis: 60000
          min-evictable-idle-time-millis: 300000
          #Oracle需要打開注釋
          #validation-query: SELECT 1 FROM DUAL
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          stat-view-servlet:
            enabled: true
            url-pattern: /druid/*
            #login-username: admin
            #login-password: admin
          filter:
            stat:
              log-slow-sql: true
              slow-sql-millis: 1000
              merge-sql: false
            wall:
              config:
                multi-statement-allow: true
    
    
    ##多數據源的配置,需要引用renren-dynamic-datasource
    #dynamic:
    #  datasource:
    #    slave1:
    #      driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    #      url: jdbc:sqlserver://localhost:1433;DatabaseName=renren_security
    #      username: sa
    #      password: 123456
    #    slave2:
    #      driver-class-name: org.postgresql.Driver
    #      url: jdbc:postgresql://localhost:5432/renren_security
    #      username: renren
    #      password: 123456
    
  2. 運行:renren-security\renren-admin\src\main\java\io\renren\AdminApplication.java

  3. 訪問: http://localhost:8080/renren-admin/login.html

啟動renren-api模塊

  1. 修改數據庫配置文件:renren-security\renren-api\src\main\resources\application-dev.yml

    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
          ## 這里修改成本機MySQL的用戶名和密碼
          username: root
          password: 123456
          initial-size: 10
          max-active: 100
          min-idle: 10
          max-wait: 60000
          pool-prepared-statements: true
          max-pool-prepared-statement-per-connection-size: 20
          time-between-eviction-runs-millis: 60000
          min-evictable-idle-time-millis: 300000
          #Oracle需要打開注釋
          #validation-query: SELECT 1 FROM DUAL
          test-while-idle: true
          test-on-borrow: false
          test-on-return: false
          stat-view-servlet:
            enabled: true
            url-pattern: /druid/*
            #login-username: admin
            #login-password: admin
          filter:
            stat:
              log-slow-sql: true
              slow-sql-millis: 1000
              merge-sql: false
            wall:
              config:
                multi-statement-allow: true
    
  2. 運行:renren-security\renren-api\src\main\java\io\renren\ApiApplication.java

  3. 訪問: http://localhost:8081/renren-api/swagger-ui.html

啟動renren-generator模塊

  1. 修改數據庫配置文件:renren-security\renren-generator\src\main\resources\application.yml

    server:
      port: 8082
      servlet:
        context-path: /renren-generator
    
    
    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        #MySQL配置
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
        ## 這里修改成本機MySQL的用戶名和密碼
        username: root
        password: 123456
        #oracle配置
    #    driverClassName: oracle.jdbc.OracleDriver
    #    url: jdbc:oracle:thin:@192.168.10.10:1521:helowin
    #    username: renren
    #    password: 123456
        #SQLServer配置
    #    driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
    #    url: jdbc:sqlserver://192.168.10.10:1433;DatabaseName=renren_security
    #    username: sa
    #    password: 123456
        #PostgreSQL配置
    #    driverClassName: org.postgresql.Driver
    #    url: jdbc:postgresql://192.168.10.10:5432/renren_security
    #    username: postgres
    #    password: 123456
      jackson:
        time-zone: GMT+8
        date-format: yyyy-MM-dd HH:mm:ss
      resources:
        static-locations: classpath:/static/,classpath:/views/
    
    
    mybatis:
      mapperLocations: classpath:mapper/**/*.xml
    
    
    pagehelper:
      reasonable: true
      supportMethodsArguments: true
      params: count=countSql
    
    
    #指定數據庫,可選值有【mysql、oracle、sqlserver、postgresql】
    renren:
      database: mysql
    
  2. 運行:renren-security\renren-generator\src\main\java\io\renren\GeneratorApplication.java

  3. 訪問: http://localhost:8082/renren-generator

模塊說明

renren-common

公共模塊,項目中需要用到的工具類和公共服務。

其內部的模塊划分為:

  • 切面處理(aspect)
  • 相關配置(config)
  • 異常處理(exception)
  • 常用工具(utils)
  • 數據校驗(validator)
  • 安全過濾(xss)

renren-admin

管理模塊,項目主要的模塊,也是基於security進行開發時使用的部分。

內部的模塊划分為:

  • 公共模塊(common)
  • 其他功能模塊
    • 系統權限(sys)
    • 任務管理(job)
    • 文件管理(oss)

其每個模塊的內部組成不相同,但總體上按照實體對象(io.renren.entity)、數據持久(io.renren.dao)、系統業務(io.renren.service)、數據接口(io.renren.controller)、其他配置(io.renren.config)、常用工具(io.renren.utils)的分類來進行。

renren-api

接口模塊,項目中移動端的接口模塊,有和admin模塊獨立的用戶。

內部的划分為:

  • 實體對象(io.renren.entity)
  • 數據持久(io.renren.dao)
  • 系統業務(io.renren.service)
  • 數據交互(io.renren.form、io.renren.controller)
  • 注解配置(io.renren.annotation)
  • 其他配置(io.renren.config)
  • 常用工具(io.renren.exception)
  • 安全攔截(io.renren.interceptor、io.renren.resolver)

renren-generator

代碼生成器模塊,更具數據庫表生成對應的CRUD后端和前台代碼,提高開發效率

renren-dynamic-datasource

多數據源配置模塊,進行多個數據源的配置

renren-fast

項目組成

  • 公共模塊:io.renren.common
  • 功能模塊:io.renren.modules
    • 系統權限模塊:io.renren.modules.sys
    • 系統接口模塊:io.renren.modules.app
    • 系統任務模塊:io.renren.modules.job
    • 文件服務模塊:io.renren.modules.oss
  • 配置部分:io.renren.config
  • 數據源配置:io.renren.datasource

項目部署

環境准備

JDK安裝和配置

https://www.cnblogs.com/nojacky/p/9497724.html

  1. 下載JDK
  2. 安裝提示在指定位置安裝JDK
  3. 配置環境變量
    • JAVA_HOME:Java的安裝路徑
    • CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
    • Path:%JAVA_HOME%\bin;(追加,要放第一位)

MySQL的安裝和配置

https://www.runoob.com/mysql/mysql-install.html

  1. 下載MySQL

  2. 安裝MySQL

    1. 解壓MySQL

    2. 在解壓目錄下創建my.ini文件

      [client]
      # 設置mysql客戶端默認字符集
      default-character-set=utf8
       
      [mysqld]
      # 設置3306端口
      port = 3306
      # 設置mysql的安裝目錄
      basedir=E:\\tmp\\MySQL\\mysql-8.0.18-winx64
      # 允許最大連接數
      max_connections=20
      # 服務端使用的字符集默認為8比特編碼的latin1字符集
      character-set-server=utf8
      # 創建新表時將使用的默認存儲引擎
      default-storage-engine=INNODB
      
    3. CMD 到MySQL解壓目錄的bin目錄下

    4. 執行命令:mysqld --initialize --console

    5. 執行命令:mysqld install(這里安裝完成之后,會將MySQL的初始密碼打印出來,后面要用初始密碼登錄MySQL)

    6. 啟動MySQL:net start mysql

  3. 配置MySQL

    1. 使用初始密碼按照提示進入MySQL
    2. 修改root的初始密碼:set password for root@localhost = '123456';

Maven的安裝和配置

https://www.runoob.com/maven/maven-setup.html

  1. 下載Maven
  2. 安裝Maven
  3. 配置Maven
    • M2_HOME:maven解壓目錄
    • Path:%M2_HOME%\bin;(追加)

Git的安裝和配置

  1. 下載Git
  2. 安裝Git

將項目導入編輯器(IDEA)

  1. 下載和安裝IDEA

  2. 配置IDEA的maven、git

    • maven

      image-20191106165259636

    • git

      image-20191106165434443

  3. 下載源碼

    https://gitee.com/renrenio/renren-fast

  4. 導入項目

運行項目(本機部署)

https://gitee.com/renrenio/renren-fast

數據庫初始化准備(MySQL)

  1. 創建數據庫:create database renren_fast;
  2. 查看數據庫:show create database renren_fast;
  3. 指定數據庫:use renren_fast;
  4. 運行SQL文件: source E:\tmp\project\renren-fast\db\mysql.sql;(source后面接sql文件的路徑)

部署后端

  1. 修改配置文件:renren-fast\src\main\resources\application-dev.yml

    spring:
        datasource:
            type: com.alibaba.druid.pool.DruidDataSource
            druid:
                driver-class-name: com.mysql.cj.jdbc.Driver
                url: jdbc:mysql://localhost:3306/renren_fast?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
                ## 這里修改為本機數據庫的用戶名和密碼
                username: renren
                password: 123456
                initial-size: 10
                max-active: 100
                min-idle: 10
                max-wait: 60000
                pool-prepared-statements: true
                max-pool-prepared-statement-per-connection-size: 20
                time-between-eviction-runs-millis: 60000
                min-evictable-idle-time-millis: 300000
                #Oracle需要打開注釋
                #validation-query: SELECT 1 FROM DUAL
                test-while-idle: true
                test-on-borrow: false
                test-on-return: false
                stat-view-servlet:
                    enabled: true
                    url-pattern: /druid/*
                    #login-username: admin
                    #login-password: admin
                filter:
                    stat:
                        log-slow-sql: true
                        slow-sql-millis: 1000
                        merge-sql: false
                    wall:
                        config:
                            multi-statement-allow: true
    
    
    ##多數據源的配置
    #dynamic:
    #  datasource:
    #    slave1:
    #      driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    #      url: jdbc:sqlserver://localhost:1433;DatabaseName=renren_security
    #      username: sa
    #      password: 123456
    #    slave2:
    #      driver-class-name: org.postgresql.Driver
    #      url: jdbc:postgresql://localhost:5432/renren_security
    #      username: renren
    #      password: 123456
    
  2. 啟動項目,運行文件:renren-fast\src\main\java\io\renren\RenrenApplication.java

  3. 查看 Swagger文檔 ,訪問: http://localhost:8080/renren-fast/swagger/index.html

  4. 查看 Swagger注解 ,訪問: http://localhost:8080/renren-fast/swagger-ui.html

部署前端

  1. 環境准備:

    1. 下載和安裝node(需要安裝10.15.3版本)

      • 下載: http://nodejs.cn/download/

      • 安裝: https://www.runoob.com/nodejs/nodejs-install-setup.html

        • 安裝時選擇【 Add to PATH 】安裝(如果選擇其他模式,在安裝完成之后需要手動添加 NODE_PATH 的環境變量)

        • 安裝完成后,在CMD中輸入【node --version】驗證是否安裝成功

        • 安裝成功后,需要配置npm插件的安裝目錄

          npm config set prefix "D:\Program Files\nodejs"  //全局模塊插件存放路徑
          npm config set cache "D:\Program Files\nodejs\node_cache"  //緩存路徑
          
    2. 下載和安裝nginx

  2. 下載前端源代碼

    https://gitee.com/renrenio/renren-fast-vue

  3. 解壓前端代碼到指定的目錄

  4. 安裝依賴:CMD到解壓目錄,執行命令:npm install

  5. 啟動服務:CMD到解壓目錄,執行命令:npm run dev

    注:啟動時,提示沒安裝node-sass時需要先安裝:npm install --save node-sass

  6. 打包項目:CMD到解壓目錄,執行命令:npm run build

    注:如果安裝了其他node版本,使得打包項目的時候報錯了,可以使用nvm控制node的版本: https://www.jianshu.com/p/d0e0935b150a

  7. 部署項目到nginx

    將打包的dist目錄放置在nginx的html目錄下

  8. 配置nginx

    配置文件:nginx-1.16.1\conf\nginx.conf

    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
        	## 修改端口號
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
    		## 修改項目路徑
            location / {
                root   html/dist;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    }
    
  9. 啟動nginx

    運行ngnix安裝根目錄下的nginx.exe文件

    • 雙擊運行

    • CMD運行

      cd到nginx的安裝目錄,執行命令:nginx

  10. 訪問項目

    使用nginx中配置的端口號訪問項目,默認為 http://localhost/

  11. 停止項目

    CMD到nginx的安裝目錄,執行命令:nginx -s stop或者nginx -s quit

模塊說明

公共模塊(io.renren.common)

包括常用的工具類和安全校驗,包含了系統常用的類和其他模塊可復用的類,具體包括:

  • 注解配置:io.renren.common.annotation
  • 切面處理:io.renren.common.aspect
  • 異常處理:io.renren.common.exception
  • 常用工具:io.renren.common.utils
  • 數據校驗:io.renren.common.validator
  • 安全防護:io.renren.common.xss

配置模塊(io.renren.config)

包括常用的配置,如Redis配置、Shiro配置、Swagger配置等。

數據源配置(io.renren.datasource)

數據源配置,進行了多數據源的配置和處理,具體包括:

  • 注解配置:io.renren.datasource.annotation
  • 切面處理:io.renren.datasource.aspect
  • 數據源配置:io.renren.datasource.config
  • 數據源屬性:io.renren.datasource.properties

功能模塊(io.renren.modules)

權限管理模塊(io.renren.modules.sys)

系統權限管理模塊,包含系統常見的系統配置管理、用戶管理、角色管理、菜單管理、日志管理、驗證碼管理、用戶角色菜單關系管理,包括:

  • 實體對象:io.renren.modules.sys.entity
  • 數據持久:io.renren.modules.sys.dao
  • 系統業務:io.renren.modules.sys.service
  • 視圖交互:io.renren.modules.sys.controller、io.renren.modules.sys.form
  • 其他配置:io.renren.modules.sys.oauth2、io.renren.modules.sys.redis

接口管理模塊(io.renren.modules.app)

接口管理模塊,擁有一套獨立的用戶體系,包含了常見的用戶登錄、注冊、驗證等,包括:

  • 實體對象:io.renren.modules.app.entity
  • 數據持久:io.renren.modules.app.dao
  • 系統業務:io.renren.modules.app.service
  • 視圖交互:io.renren.modules.app.controller、io.renren.modules.app.form
  • 注解配置:io.renren.modules.app.annotation
  • 常用工具:io.renren.modules.app.utils
  • 安全攔截:io.renren.modules.app.interceptor、io.renren.modules.app.resolver

任務管理模塊(io.renren.modules.job)

定時任務管理模塊,包含定時任務和定時任務日志,包括:

  • 實體對象:io.renren.modules.job.entity
  • 數據持久:io.renren.modules.job.dao
  • 系統業務:io.renren.modules.job.service
  • 視圖交互:io.renren.modules.job.controller
  • 常見工具:io.renren.modules.job.utils
  • 定時任務:io.renren.modules.job.task

文件管理模塊(io.renren.modules.oss)

文件存儲管理模塊,包含文件上傳管理、雲存儲管理和配置,包括:

  • 實體對象:io.renren.modules.oss.entity
  • 數據持久:io.renren.modules.oss.dao
  • 系統業務:io.renren.modules.oss.service
  • 視圖交互:io.renren.modules.oss.controller
  • 雲存儲配置:io.renren.modules.oss.cloud


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM