美文网首页
开发说明 | AchieveIt和lenosp脚手架 Q&A

开发说明 | AchieveIt和lenosp脚手架 Q&A

作者: zilla | 来源:发表于2020-03-31 11:43 被阅读0次

配置

配置文件application.yml

如图,现在选中的是application-mysql-dev 可选的配置文件,用于环境切换(测试、开发、生产)

可以在配置文件中,设置tomcat的端口(springboot内置了Tomcat),要连接的数据库。

server:
  port: 8081 #这里写Tomcat端口
spring:
  devtools:
      restart:
        enabled: true
  datasource:
        url: jdbc:mysql://xx.xx.xx.xx:xxxx/DB_NAME?useUnicode=true&characterEncoding=UTF-8
        username: 用户名
        password: "密码"

目前,最好都从我的数据库(lenos_origin)克隆一个自己的数据库,在自己的上面改,防止乱掉。自己建表时记得ENGINE=InnoDB DEFAULT CHARSET=utf8;,尽量少用外键(逻辑上外键可,物理外键尽量少,可以存一些冗余信息,减少query次数还好写,比如某表存了xxxid,还经常需要显示xxx_name,不妨把name也直接存表了)。

lenosp脚手架说明

  • 使用了开源脚手架lenos (p为spring boot版本扩展名)一款快速开发模块化脚手架,采用spring boot 2.0.1+spring+SpringMvc+mybatis+shiro+swagger+ehcache+quartz+freemarker+layui技术开发,集成了Activiti5.22。
  • 项目部署说明
    • 修改 application.yml imagePath 路径 把image文件夹图片赋值进路径,即可正常展示头像
    • 数据库使用mysql5.6,在云端,项目可直接运行。

启动说明

mvn clean package
mvn package
java -jar len-web.jar

技术

采用的技术即lenos脚手架集成的部分技术。

  • jdk:1.8
  • 核心框架:spring boot 2.0.1.RELEASE
  • 安全框架:Apache Shiro(用于用户角色权限控制)
  • 工作流引擎:Activiti5.22
  • 数据库连接池:druid
  • 视图框架:spring mvc
  • 持久层框架:MyBatis
  • 模板引擎:freemarker
  • 缓存:redis、ehcache(目前未使用)
  • 定时:quartz 2.3.0(目前未使用)
  • 前端页面:layui

模块和可参考的内容✨

典型的springMVC+MyBatis,可以自己查一下。

  • 注意区分系统内权限和项目内权限。涉及工作范围的疑问一定要群里说,私聊可能更乱😂。
  • 已有的模块:

除了负责工作流部分的(这个系统应该仅有立项审批流程用到工作流),都写在len-web里就可以了,或者自己开模块,自己开模块可以先写套hello controller,确定能正常工作了再写。

  • len-activiti @我
    引入了activiti5.22,数据库里act_开头的23张表都是activiti引擎需要操纵的,通过在这个模块调用activiti的xxxxxService来管理。

  • len-core @all 不需要修改,只需要使用
    这里有个通用service层,通用数据库操作增删改都有了,使用只需要public interface xxxxxService extends BaseService<entity类型,‘主键’类型>,xxxxxService就可以直接调这些操作了。

  • len-sys @all 尽量不要修改,只使用
    要修改,先在群里商量。这块主要是系统内的用户,角色,用户-角色,菜单,角色-菜单,菜单和用户系统内的权限挂钩。

  • len-web @all

    🏀🏀🏀典型的springMVC+MyBatis,一套大概是:

    数据库表 — entity,resource里的mapper
    mapper — service(service的impl)—controller里调service — ftl页面

常见操作一览

  • 获取当前用户id和当前用户
String id = Principal.getPrincipal().getId(); // getPrincipal() return type: CurrentUser
SysUser user = userService.selectByPrimaryKey(id);
  • pull、push
    push前需要邀请为collaborator。


    push前最好在群里说一哈
  • 用IDEA自带/Navicat/Workbench操作数据库很方便,连接信息在前面说过的application.yml

  • shiro拦截(建议先忽略,之后来得及再加,目前只是拦截不登录就访问)

    shiro配置
    filterMap.put("xxxxxxx", "anon");xxxxxxx是不登录就可访问的url。

    shiro也是一写写一套的= =
  • Git在IDEA中的使用(详细图文全解)
    大家各自新建分支,push到分支。merge前一定要检查!!!

    • Git回滚
      git log
      git reset --hard yourCommitNum
      git push origin HEAD --force
    • 还能再滚回去= =
      首先得到要回退到的版本号git reflog
      执行回退 git reset --hard yourCommitNum
  • 在实体类上加lombok注解@Data,就不用自己写get set toString了。

  • 给前台传数据,model.addAttribute("xxxxx", obj) ,在页面获取${xxxxx}
    @ModelAttribute注解的使用

  • layui的layer type
    layer提供了5种层类型:
    0:信息框,默认
    1:页面层
    2:iframe层
    3:加载层
    4:tips层

  • 慎用@PathVariable,有坑,注意和@RequestParam区分。

  • 在普通的(非controller的)类中使用XxxxService,SpringUtil.getBean(XxxxService.class)即可。

  • activiti 任务节点 处理人设置

    流程设计
  • Ajax

  • 部署到服务器后,流程节点动态显示,出现中文乱码
    解决:给服务器(Centos7)装中文字体
    Linux CentOS 7 安装字体库 & 中文字体

  • screen 让进程保持运行
    kill进程:screen -r screen_id -X quit

相关文章

网友评论

      本文标题:开发说明 | AchieveIt和lenosp脚手架 Q&A

      本文链接:https://www.haomeiwen.com/subject/bboiuhtx.html