-
Notifications
You must be signed in to change notification settings - Fork 3k
最佳实践
zhōuhào edited this page Jun 4, 2018
·
5 revisions
hsweb
的目标是提供一些后台管理中常用的功能,帮助项目的快速开发.但是hsweb
不是万能的,并不是所有场景都适用.以下为推荐的使用场景:
- 前后分离,完全开源的后台管理项目.
- 细粒度权限控制,控制到按钮,数据行,数据列.
- 模块化,可拓展.
- 动态,动态查询条件,动态表单,动态数据源.....
在使用hsweb
之前,如果你已经掌握以下技术栈,应该能很快上手.
-
java8
对java8有所了解,比如java8的新特性:lambda
,stream-api
. -
maven
熟悉maven多模块项目使用. -
spring
,spring-mvc
熟悉常用注解,类,以及使用方式. -
spring-boot
了解spring-boot
的自动配置,配置项目以及配置方式. -
mybatis
熟悉mybatis
的使用,以及常用配置. -
restful
对restful有所了解会帮助你更快对熟悉hsweb中对web api.
hsweb
并不是像常见脚手架项目一样:直接下载到本地,修改其中代码,或者在上面新增功能. hsweb是模块化的,根据你的需要,选择适合自己的模块然后maven引入,各个模块都提供了不同程度的拓展方式. 如果有新的需求可以提交issues
或者pull request
.
开始:
- 使用
maven
依赖的方式使用hsweb
,正式版都会上传到maven中央仓库,快照版将会发布到私有仓库. 最新的正式版为: ,快照版本为:
快照版和正式版的区别: 快照版为频繁更新的版本,会不定期发布更新,即使不修改本地版本号,也会更新到最新的包,使用快照版可以体验最新的特性.而正式版相对稳定,更新频率更慢,发布到中央仓库后无需引入私服即可使用.
如果使用快照版,需要在pom.xml中引入私服:
<repositories>
<repository>
<id>hsweb-nexus</id>
<name>Nexus Release Repository</name>
<url>http://nexus.hsweb.me/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy> <!--每次都从服务器更新最新的快照版本-->
</snapshots>
</repository>
</repositories>
- 引入
hsweb
到依赖管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-framework</artifactId>
<version>${hsweb.framework.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 引入相关模块依赖
基础依赖:
<dependencies>
<!--基本启动模块,用于系统的初始化,自动配置等操作-->
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-spring-boot-starter</artifactId>
</dependency>
<!--spring-boot 日志模块,使用slf4j+logback进行日志管理-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<!--spring-boot-web模块,自动配置springMvc,这里不使用tomcat,而是使用undertow作为内置servlet容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<!--对spring-cache的拓展,主要是修复一个spring-cache的bug,如果开启里使用缓存,则需要引入这个依赖-->
<dependency>
<groupId>org.hswebframework.web</groupId>
<artifactId>hsweb-concurrent-cache</artifactId>
<version>${hsweb.framework.version}</version>
</dependency>
</dependencies>
完整的pom配置你可以参照hsweb3-demo中的pom.xml
- 引入需要使用的hsweb模块
你可以在hsweb-framework 中各个模块下的README.md
中获取到对应模块的使用方式.
TODO
- 权限功能使用以及拓展
- 单一模块的CRUD演示
- 模块化的CRUD演示
- 事件驱动的场景演示
- spring-cloud整合演示
TODO
- FastBeanCopier : 基于字节码的快速bean属性复制,支持复杂结构以及类型转换.
- EnumDict : 基于枚举的数据字典
- IDGenerator : ID生成器
TODO
- 调用dao时,mybatis提示
invalid bound statement
. - 打包部署到服务器后,提示找不到类: *FastBeanCopier1 .