框架介绍

三个框架

人人框架总共分为三个,分别是: renren-security、 renren-fast、 renren-generator。

根据官方的介绍,

renren-security和renren-fast的区别

官方介绍

java 人人 人人开发框架_bc

运行效果

renren-security(开源版)在本机部署之后的页面:

java 人人 人人开发框架_mysql_02

renren-fast 在本机部署之后的页面:

java 人人 人人开发框架_bc_03

差异总结

它们之间的区别如下:

  • 功能上
  • security(开源版)比fast多了部门管理字典管理
  • fast支持多标签页打开和切换,security(开源版)只能打开一个标签页,不能通过标签页直接切换页面
  • 部署方式上,security是前后端一起部署的,而fast是前后端分开部署的
  • 页面风格上,security有AdminLTE和Layui两种主题,而fast有AdminLTE和Element UI两种主题

renren-security三个版本的差异

官方介绍

java 人人 人人开发框架_MySQL_04

java 人人 人人开发框架_java 人人_05

运行效果

renren-security开源版运行效果:

java 人人 人人开发框架_bc_06

renren-security企业常规版运行效果:

java 人人 人人开发框架_bc_07

renren-security企业专业版运行效果:

java 人人 人人开发框架_java 人人_08

差异总结

  • 功能上
  • 企业版比开源版多了登录日志异常日志
  • 企业版比开源版多支持了短信邮件发送邮件模板邮件发送记录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安装和配置


  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
  1. CMD 到MySQL解压目录的bin目录下
  2. 执行命令:mysqld --initialize --console
  3. 执行命令:mysqld install
  4. 启动MySQL(net start mysql)
  1. 配置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
  1. 导入项目
    直接在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
  1. 运行:renren-security\renren-admin\src\main\java\io\renren\AdminApplication.java
  2. 访问: 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
  1. 运行:renren-security\renren-api\src\main\java\io\renren\ApiApplication.java
  2. 访问: 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
  1. 运行:renren-security\renren-generator\src\main\java\io\renren\GeneratorApplication.java
  2. 访问: 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安装和配置


  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
  1. CMD 到MySQL解压目录的bin目录下
  2. 执行命令:mysqld --initialize --console
  3. 执行命令:mysqld install(这里安装完成之后,会将MySQL的初始密码打印出来,后面要用初始密码登录MySQL)
  4. 启动MySQL:net start mysql
  1. 配置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
  1. 下载源码
    https://gitee.com/renrenio/renren-fast
  2. 导入项目
  • 直接在IDEA中国通过GIT下载和导入


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

  • 先下载源码再导入

运行项目(本机部署)

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
  1. 启动项目,运行文件:renren-fast\src\main\java\io\renren\RenrenApplication.java
  2. 查看 Swagger文档 ,访问: http://localhost:8080/renren-fast/swagger/index.html
  3. 查看 Swagger注解 ,访问: http://localhost:8080/renren-fast/swagger-ui.html

部署前端

  1. 环境准备:
  1. 下载和安装node(需要安装10.15.3版本)
  • 安装时选择【 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"  //缓存路径
  1. 下载和安装nginx
  1. 下载前端源代码
    https://gitee.com/renrenio/renren-fast-vue
  2. 解压前端代码到指定的目录
  3. 安装依赖:CMD到解压目录,执行命令:npm install
  4. 启动服务:CMD到解压目录,执行命令:npm run dev
    注:启动时,提示没安装node-sass时需要先安装:npm install --save node-sass
  5. 打包项目:CMD到解压目录,执行命令:npm run build
    注:如果安装了其他node版本,使得打包项目的时候报错了,可以使用nvm控制node的版本: https://www.jianshu.com/p/d0e0935b150a
  6. 部署项目到nginx
    将打包的dist目录放置在nginx的html目录下
  7. 配置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;
    #    }
    #}

}
  1. 启动nginx
    运行ngnix安装根目录下的nginx.exe文件
  • 双击运行
  • CMD运行
    cd到nginx的安装目录,执行命令:nginx
  1. 访问项目
    使用nginx中配置的端口号访问项目,默认为 http://localhost/
  2. 停止项目
    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