美文网首页
开发说明 | 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