Code Monkey home page Code Monkey logo

dashboard's Introduction

SpringMVC + React 框架项目

整体项目

项目前端和后端需要分开开发(并不是代码分开,而是启动前端服务器和后台服务器,但是他们可以相互访问)

  • 后台服务启动: 普通tomcat启动即可(推荐使用eclipse,方便调试部署),需要修改配置文件config.properties 中的 project.source.path.root 为当前项目路径.
  • 前端服务启动: 修改 .roadhogrc.js 文件中的proxy(前端访问代理, 第18行,主要是端口)为启动的后台服务
     "/api/v1": {
       "target": "http://127.0.0.1:9090/Dashboard",
       "changeOrigin": true,
       "pathRewrite": { "^/api/v1" : "/api/v1" }
    }

使用 nodejs 的 npm run dev 启动前端服务,修改代码会自动重新部署(需要先安装nodejs和install相应的lib包,步骤见 前端 说明)

项目前端和后台可以分离部署也可合并部署

  • 合并部署,使用 mvn clean install 即可将前端代码编译打包到war中,直接部署到 tomcat即可.
  • 单独部署,后台作为单独的api服务器,使用 mvn install 即可打成war包,前端使用 npm run build 即可将前端代码打包到 dist文件夹,复制dist中文件到 nginx/apache等服务器就可以单独部署.

后端( SpringMVC )

基于 SpringMVC + Mybatis + swagger + Atomikos(多数据源事务管理) + maven 的框架

框架说明

  1. 后端整体框架是使用 springMVC 4.3.8 详细配置见 applicationContext.xml
  1. 数据库操作是使用 Mybatis 3.2.3 详细见 jdbc.xml配置
  1. 事物管理是使用 Atomikos 4.0.1, 可配置多数据源,详细见 jdbc.xml配置
  1. 包管理是使用 maven
  1. api访问测试是使用 swagger 0.9.5, 需要先使用 PUT方式的/api/v1/login 进行登录,才能访问api,否则401未授权

后端目录结构

  1. 控制器在 controller包下,所有控制器需要继承com.xh.common.controller.BaseController基础控制器,使用 com.xh.util.Utils.API_PREFIX 为RequestMapping前缀, 现有和前端配合的 登录/菜单/用户/权限 四个控制器.
  1. 数据源在 dao 包下,详细配置在jdbc.xml中,现配置了datasource1/datasource2/jsondatsource 三个数据源,其中datasource1/datasource2为两个数据库源(未使用,和jdbc.xml有关),jsondatsource(和jdbc.xml无关)为文件数据源,配合前端使用.
  1. 实体文件在 dto和entry包下,entry包下为数据库实体(表),dto包下为api访问需要的中间实体,他们都必须要继承 com.xh.common.dto.CommonDto 基础Dto(否则日志和api返回会异常).
  1. 服务在service包下,所有的服务都必须要继承 com.xh.common.service.BaseService 基础服务. 现有和前端配合的 登录/菜单/用户/权限 四个服务及其接口
  1. 工具类在util包下,现有base64加密工具;config属性文件读取工具;接口代理工具;类反射工具;字符串/集合/常量综合工具Util类;文件工具类在vfs子包下,com.xh.vfs.WebVFS类可以处理本地文件和远程文件(带协议头);xml工具类在xml包下,com.xh.xml.XMLHandler类可以处理xml文件或字符串,并对dom解析;httpUtil工具等
  1. 公共类在common包下,里面包含控制器,服务等所有公共基类
  1. 扩展类在ext包下,里面包含swagger配置类,异常处理类,过滤器类,切片类等功能扩展类

前端( React Antd )

基于 React + antd + dva + roadhog 的框架

开源文档

特性

  • 基于reactant-designdvaMock 企业级后台管理系统最佳实践

  • 基于Antd UI 设计语言,提供后台管理系统常见使用场景

  • 基于dva动态加载 Model 和路由,按需加载

  • 使用roadhog本地调试和构建,其中Mock功能实现脱离后端独立开发

  • 浅度响应式设计

目录结构

    ├── /dist/           # 项目输出目录

    ├── /src/            # 项目源码目录

    │ ├── /public/       # 公共文件,编译时copy至dist目录

    │ ├── /components/   # UI组件及UI相关方法

	│ │ ├── skin.less    # 全局样式

	│ │ └── vars.less    # 全局样式变量

	│ ├── /routes/       # 路由组件

	│ │ └── app.js       # 路由入口

	│ ├── /models/       # 数据模型

	│ ├── /services/     # 数据接口

	│ ├── /themes/       # 项目样式

	│ ├── /mock/         # 数据mock

	│ ├── /utils/        # 工具函数

	│ │ ├── config.js    # 项目常规配置

	│ │ ├── menu.js      # 菜单及面包屑配置

	│ │ ├── config.js    # 项目常规配置

	│ │ ├── request.js   # 异步请求函数

	│ │ └── theme.js     # 项目需要在js中使用到样式变量

	│ ├── route.js       # 路由配置

	│ ├── index.js       # 入口文件

	│ └── index.html    

	├── package.json     # 项目信息息

	├── .eslintrc        # Eslint配置

	└── .roadhogrc.js    # roadhog配置

快速开始

1.进入前端源码目录 Dashboard\src\main\webapp\frontend-src

2.首次

	#开始前请确保没有安装roadhog、webpack到NPM全局目录

	npm i 或者 yarn install

3.开发

	npm run build:dll #第一次npm run dev时需运行此命令,使开发时编译更快

	npm run dev

    打开 http://localhost:8000 开发调试

4.构建(可忽略,maven install 会自动调用)

	npm run build

5.代码检测(可忽略))

	npm run lint

开发

  • src/router.js 为全局路由文件,新建路由需要增加文件中routes数组

  • src/routes/XXX 新建路由component

  • src/models/XXX 新建路由model

    ps. 简易开发 ,在开发环境,运行npm run dev,在menu管理中增加菜单并自动生成模板,会自动增加路由和相关文件,只有在开发环境才能使用,后端需要配置project.source.path.root属性

发布

在根目录Dashboard下,运行 mvn clean install ,会将前端代码进行构建打包并复制到Dashboard\src\main\webapp\frontend中并打入war中,可直接放入tomcat等环境直接使用

dashboard's People

Contributors

xiong305817127 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.