GithubHelp home page GithubHelp logo

jenner4s / platform-ng Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tylanbin/platform-ng

0.0 2.0 0.0 3.64 MB

准备搭建一个快速开发的Java平台框架,后台整合Spring、SpringMVC、Hibernate,前端使用jQuery EasyUI,目的是为了可以快速生成前后端代码,缩短开发时间。

Java 98.96% JavaScript 1.04%

platform-ng's Introduction

NG开发平台(个人使用)

NG开发平台是一个人使用的JavaWeb开发基础框架

  • 该平台可以使用POJO类(自己实现或使用反向工具生成),一次性生成各层代码,只需要通过少量的调整,即可直接使用
  • 该平台已经完成了基础的用户-角色-权限控制(借助Shiro),并附带了组织/员工的基本管理
  • 该平台放弃了传统的JSP页面,转用HTML+AJAX的方式实现,旨在减少开发人员与美工之间的冲突

目录

框架介绍

核心模块

组织机构-员工模块

  • 对组织机构、员工的基本管理
  • 对员工账号、角色的基本管理

用户-角色-权限模块

  • 对系统角色、权限的基本管理
  • 对用户、角色、权限关系的管理
  • 与Shiro框架整合,进行精细化权限控制

开始使用

POJO类

  • 本框架使用Hibernate注解形式,所以可以手动完成POJO类,或使用反向工具生成
  • 为POJO类加入注解@JsonFilter(包.类名),目的是为Json序列化时,动态过滤属性
  • 为POJO类属性加入注解@MetaData(chsName = "xxx"),目的是在生成页面代码时取得中文属性名
  • 示例代码如下(或直接参照me.lb.model.demo.Foo
package me.lb.model.demo;

import java.sql.Timestamp;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import me.lb.support.system.annotation.MetaData;

import org.codehaus.jackson.map.annotate.JsonFilter;

@Entity
@Table(name = "ng_demo_foo")
// 加入该注解,动态过滤属性
@JsonFilter("me.lb.model.demo.Foo")
public class Foo implements java.io.Serializable {

	// Fields

	private static final long serialVersionUID = -1838970134469714230L;
	private Integer id;
	@MetaData(chsName = "整型")
	private Integer col1;
	@MetaData(chsName = "字符串")
	private String col2;

	// Constructors

	/** default constructor */
	public Foo() {
	}

	/** full constructor */
	public Foo(Integer col1, String col2) {
		this.col1 = col1;
		this.col2 = col2;
	}

	// Property accessors
	@Id
	@GeneratedValue
	@Column(name = "id")
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "col1")
	public Integer getCol1() {
		return this.col1;
	}

	public void setCol1(Integer col1) {
		this.col1 = col1;
	}

	@Column(name = "col2")
	public String getCol2() {
		return this.col2;
	}

	public void setCol2(String col2) {
		this.col2 = col2;
	}

}

项目生成

  • 修改数据库配置src/main/resources/jdbc.properties,配置数据库参数(暂时只支持MySQL)
  • 执行数据库生成工具me.lb.utils.InitDB(src/test/java下),生成数据表及关联,并初始化数据(可选)
  • 调整代码生成工具me.lb.utils.InitCode(src/test/java下),列出自定义的POJO类所在的文件夹(可以多个)
  • 注意:
    • 初始化数据时,需要先初始化表结构(db_init方法),再初始化数据(data_init方法)
    • 在eclipse中,项目依赖的activiti-modeler可能与JUnit存在冲突,导致无法正常执行测试用例
    • 如果出现冲突,需要通过执行mvn test来执行测试用例(mvn test -Dtest=类名#方法名)
// 如果你的POJO类为me.lb.xxx.Pojo,则xxx就是所指的名称
String[] folders = { "demo1", "demo2" };
  • 直接执行 me.lb.utils.InitCode,即可生成代码(src/test/java下)
  • 代码生成说明(以POJO类为me.lb.model.xxx.Pojo为例)
    • me.lb.dao.xxx.PojoDao为持久层接口
    • me.lb.dao.xxx.impl.PojoDaoImpl为持久层实现
    • me.lb.service.xxx.PojoService为业务层接口
    • me.lb.service.xxx.impl.PojoServiceImpl为业务层实现
    • me.lb.controller.admin.xxx.PojoController为控制层
    • src/main/webapp/web/admin/xxx/pojo/list.html为页面代码
    • src/main/webapp/assets/admin/xxx/pojo/list.js为JS代码

代码调整

  • 代码生成完毕后,需要手动调整修改如下几处
  1. 修改me.lb.dao.xxx.impl.PojoDaoImpl文件,带参数的pagingQuery方法(处理分页查询的方法)
  2. 修改me.lb.controller.admin.xxx.PojoController文件,edit方法(处理修改对象的哪些属性)
  3. 修改src/main/webapp/web/admin/xxx/pojo/list.html文件,修改对话框的表单控件(参考EasyUI文档)
  4. 其余代码不调整也可使用,但推荐根据情况进行修改(如业务代码、页面等)
  5. 修改src/main/webapp/web/admin/common/main.html文件,加入功能链接../xxx/pojo/list.html

注意事项

备注

platform-ng's People

Watchers

James Cloos avatar Jenner 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.