Git Product home page Git Product logo

oms's Introduction

oms

演示地址 前端代码

readme 太丑, 以后有空再整理

Table of contents generated with markdown-toc

s1

Order management system build with spring & mysql

s2

前端:React + AntDesign 后端:Spring Boot 数据库: MySQL

环境配置

  1. 若使用IDEAC, 安装 Spring Assistant 插件; 或者使用官方提供的 Spring Initializer

    gradle 修改为国内镜像: C:\Users<windows用户名称>.gradle 中新建文件init.gradle 文件内容如下:

allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
        def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
            url ALIYUN_REPOSITORY_URL
            url ALIYUN_JCENTER_URL
        }
    }
}
  1. IDE 中新建工程

    Snipaste_2019-04-18_11-23-01

  2. 添加依赖

    Snipaste_2019-04-18_11-23-19

  3. 设置gradle自动导入包

    Snipaste_2019-04-18_11-24-09

  4. 等待配置包完成后,主文件自动变为可执行

    Snipaste_2019-04-18_11-39-26

  5. 启动服务

    Snipaste_2019-04-18_11-39-54

本机Gradle已经内置了Wrapper Task,执行Wrapper Task就可以在项目目录中生成Gradle Wrapper的目录文件。在项目根目录执行gradle wrapper就可以了,会生成和本机gradle相同的版本信息

gradlew = gradle + wrapper

$ gradle wrapper

> Task :wrapper
> BUILD SUCCESSFUL **in** 0s
> 1 actionable task: 1 executed

这时会在项目根目录中生成如下文件:

├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat

每个文件的含义如下:

  • gradle-wrapper.jar :包含Gradle运行时的逻辑代码。
  • gradle-wrapper.properties :负责配置包装器运行时行为的属性文件,用来配置使用哪个版本的Gradle等属性。
  • gradlew:Linux平台下,用于执行Gralde命令的包装器脚本。
  • gradlew.bat:Windows平台下,用于执行Gralde命令的包装器脚本。

用于其他用户clone本项目后使用gradle wrapper直接进行项目的构建

其他用户运行:gradlew bootrun 或者 gradlew build 时会下载“gradle-wrapper.properties”中的gradle版本,以保证和本机使用的gradle版本一致

本机运行 gradle bootrun 会临时构建web服务,不需要创建jar文件,应当在开发阶段使用这个命令,因为它可以使我们静态的classpath资源(即:在src/main/resources下的文件)都成为可重载的资源。

$ gradle bootrun

其次,我们可以将应用程序打包为一个可执行的jar文件,继而执行所创建的文件。如果想要在一台远程服务器上运行Spring Boot应用,应当采用这种方法。

通过在命令提示符中输入以下命令,就可以创建一个可执行的jar文件了。

$ gradle build

这条命令会在build/libs目录下创建spring-boot-web-application.jar文件。在将其复制到远程服务器上后,可以通过以下命令运行应用程序。

$ java -jar spring-boot-web-application.jar

  1. 浏览器中打开 http://localhost:8080

    1555566478497

最后项目结构应该为:

.
├── README.md
├── build
│   ├── classes
│   │   └── java
│   │       └── main
│   │           └── com
│   │               └── mrky
│   │                   ├── Application.class
│   ├── resources
│   │   └── main
│   │       └── application.properties
│   └── tmp
│       └── compileJava
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── src
    └── main
        ├── java
        │   └── com
        │       └── mrky
        │           ├── Application.java
        ├── main.iml
        └── resources
            └── application.properties

前后端分离

前端编译结果在"./FrontEnd/"下 前端代码位于./src/main/resources/react_oms

参与贡献

git使用教程

  1. 联系管理员邀请你加入仓库; 或者fork 本项目, 提pull request

  2. 添加公钥到码云:

    http://www.runoob.com/w3cnote/view-ssh-public-key.html

  3. 设置本地git的信息

    # Setting Up User Name and Email Address
    $ git config --global user.name "John Doe"
    $ git config --global user.email [email protected]
    # Checking Your Settings
    $ git config --list
  4. 使用ssh方式,克隆远程仓库到本地,

git clone [email protected]:njcky/oms.git 

所有本地分支默认与远程主机的同名分支, 建立追踪关系, 也就是说, 本地的master分支自动"追踪"远程的origin/master分支.

手动建立追踪关系:

git branch --set-upstream master origin/next
  1. 新建 自己的 分支

    1. 查看本地分支 git branch
    2. 查看所有隐藏的分支 git branch -a (origin为远程仓库的别名)

    3.1 远程先开好分支, 然后拉取到本地 切换到远程分支origin/mr, 并新建一个本地分支为"mr":

    git checkout -b mr origin/mr

    3.2 本地开分支, 然后推送到远程, 远程没有分支会自动创建

    git checkout -b mr
    git push origin mr:origin/mr

    切换分支, 开始开发 (每次开发前需要和远程master分支保持同步)

    git checkout mr
    git pull origin master
  2. 提交代码

    1. 提交代码到本地暂存库
    git add . 
    git commit -m 'xxx'
    1. 提交代码到远程仓库 提交当前分支内容到远程对应分支
    git push <远程主机名> <本地分支名>:<远程分支名>

    如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名), 如果该远程分支不存在, 则会被新建.

    git push origin mr

    若想删除远程主机的指定分支:

    git push origin --delete mr

    如果当前分支与远程分支之间存在追踪关系, 则本地分支和远程分支都可以省略.

    git push origin

    如果当前分支只有一个追踪分支, 那么主机名都可以省略.

    git push

    如果当前分支与多个主机存在追踪关系, 则可以使用-u选项指定一个默认主机, 这样后面就可以不加任何参数使用git push.

    git push -u origin mr
    1. git push 避免每次都输入密码?

    是否使用了https的方式进行连接?

    $ git remote -v origin https://gitee.com/njcky/oms.git (fetch) origin https://gitee.com/njcky/oms.git (push)

    说明使用了ssh的方式进行了连接,切换回master分支:git checkout master,

    修改为ssh方式连接:

    git remote rm origin

    git remote add origin XXX.git (这里一般是你项目中的ssh地址)

    git push -u origin master

  3. 新特性开发流程:

    1. 切换到自己所在分支:git checkout mr
    2. git pull origin master 首先和远程master分支内容同步
    3. 新特性开发
    4. git add .
    5. git commit -m 'add new feature'
    6. git push 提交本地分支mr下的内容到对应远程分支origin/mr
  4. 提交 Pull Request 到 master分支

    1. 若无冲突,让管理员审核
    2. 若有冲突,git pull origin master,解决冲突,再提交。若冲突不可避免,交由管理员在master分支中手动解决冲突:git pull origin master,手动解决冲突(可利用vscode明显地看到冲突的地方)。管理员解决完冲突后,再次开发时,转7。
  5. 添加其余仓库, 同步代码

    git remote add github [email protected]:chenkangyang/oms.git
    git remote -v
    git add .
    git commit -m 'update'
    git push github
    

oms's People

Contributors

chenkangyang avatar rightchose avatar

Stargazers

 avatar  avatar

Watchers

 avatar

oms's Issues

## Redux-alita使用说明

Redux-alita使用说明

看了一下redux-alita的实现, 稍微写一下自己的理解, 有错误请指正! @SiroSong @hypo1986
使用React-Redux针对此项目进行了封装,

提供4个功能:
{AlitaProvider, connectAlita, setAlitaState, setConfig}

AlitaProvider

  1. 使用 redux-thunk 作为异步action中间件, 生成唯一的一个容器 store,
  2. 提供一个包裹在根组件外面的Provider组件, 使所有的子组件都能拿到 store, 它的原理是React组件的context属性

connectAlita(state)

  1. 使用connect方法, 从 "UI组件"(App组件) 生成 "容器组件"
  2. 传入参数state, 使用mapStateToProps负责输入逻辑, 即将state映射到 "UI组件"的参数(props), 引起UI组件的更新
  3. 使用mapDispatchToProps负责输出逻辑, 即将用户对 "UI组件"的操作映射成 Action, 传给Store存储, 引起state的更新

setAlitaState(Object)

    Object.funcName: 请求接口函数名称
    Object.stateName: category
    Object.data: data
    Object.params: 请求接口的参数
    之后 dispatch 执行一个 Action, 表示 state 要发生变化

setConfig (apis)

传入所有的接口, 存入funcs, 以便使用funcs[funcName](params)执行接口函数

Originally posted by @chenkangyang in yezihaohao/react-admin#12 (comment)

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.