【APP】移动易APP开源组合套件框架(后端+前端)

2015-07-26 /  jiekechoo

app开发_xml

企鹅讨论群:103880410 

 

前提要求

本博客完全原创,《移动易APP开源组合套件框架(后端+前端)》:

  • 历时2个月,从学习Spring Boot开始,到熟悉Spring框架下各类组件,比如:spring-jpa, spring-data-*, 等;

  • 一边熟悉业务,一边搭建App后台框架,被人鄙视无数次,与人争论无数次,最终App上线,业务量暴增,后台顶住了压力;

  • 现已将App后台框架开源,后台开发同学只需要熟悉业务后针对业务开发就可以了,大大提高了开发效率,尤其是在互联网时代,App时代。

此框架有很多独特之处,方便之处:

  • 没有xml定义文件,全部java实现;

  • 没有sql语句,全部用repository实现;

  • 框架调试自带tomcat,不需要打包后部署看效果;

  • 支持restful,支持json,控制权限灵活;

  • 采用thymeleaf实现html页面,不需要jsp了;

本项目,需要一些基础知识才能跑起来。

  • 你是一个开发人员,至少java有经验;
  • 用过spring框架,哪怕是最老的版本,你还需要去spring.io读一些最新的知识:spring boot, spring security, spring data, spring session等;
  • 你需要有maven使用经验,否则,根本跑不起来;
  • 你需要一些mysql的经验,比如建库表,用户权限等。

设计方案和效果展示:

框架设计

app开发_github_02

业务层次模型划分

app开发_maven_03

在线API调试

app开发_maven_04

管理页面模板

app开发_github_05

管理页面-用户管理

app开发_xml_06

web管理数据库

app开发_tomcat_07

启动应用步骤:

1、本地新建MySQL数据库demo,导入数据表(下面有create user table);

2、本地启动redis服务器(默认redis存储token已关闭,可以在demo.session中去掉注释,来开启redis给功能);

3、运行 mvn spring-boot:run

log出现:Tomcat started on port(s): 8080 (http),证明启动成功

访问在线API文档:

http://localhost:8080/debug/index.html 即可在线查看API手册和调试API。

具体测试操作步骤

1、使用在线API注册用户: /api/create 接口;

2、http://localhost:8080/ 测试“多重认证”(web form模拟web应用和httpBasic模拟客户端应用);

3、http://localhost:8080/admin/ 登录访问图形管理界面(需要在authorities表中增加一条 第1步中创建的用户权限,比如:admin ROLE_ADMIN );

4、http://localhost:8080/lightadmin/ 可GUI管理数据库;

创建数据库

create user table:

CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(45) NOT NULL, password varchar(100) NOT NULL, image varchar(200) DEFAULT '', enabled varchar(45) NOT NULL DEFAULT '1', PRIMARY KEY (id), UNIQUE KEY username_UNIQUE (username) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

CREATE TABLE authorities ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(45) NOT NULL, authority varchar(45) NOT NULL, PRIMARY KEY (id), UNIQUE KEY username_UNIQUE (username,authority) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;

APP保活机制

API保活访问采用cookie方式,APP客户端需要把cookie放在http header中发送到服务端,测试如下,SESSION换成你得到的cookie即可

curl http://localhost:8080/api/i/user/9 -H "Cookie:SESSION=5b55e933-7c68-4333-82e4-656d777d72a4"

如果部署到Tomcat中,需要稍微修改一下

修改pom.xml文件

官方参考: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging


    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <!-- ... -->
        <packaging>war</packaging>
        <!-- ... -->
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
            <!-- ... -->
        </dependencies>
    </project>

将包改成 war,加入tomcat的scope为 provided,这样部署到TOMCAT就不会启动内置的tomcat了。

修改启动类

官方参考: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file


    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }

        public static void main(String[] args) throws Exception {
            SpringApplication.run(Application.class, args);
        }

    }

将你的启动类改成以上样式。 mvn package 打包,并把target下的war包部署到TOMCAT即可。

欢迎fork开源框架:GITHUB:

已经停止更新

https://github.com/sectong/mobileeasy

GitHub新代码:

https://github.com/sectong/yidongyi

企鹅讨论群:103880410