## 项目结构 * fumao-app * 对外接口和WEB的配置项 * fumao-common * 一些常用的工具类 * fumao-company * 集团端代码 * fumao-system * 系统端代码 * fumao-service * controller里面调用, 聚合其他几个模块的代码 ## jpa相关 ### 快速查询 ``` @QueryItem(type = QueryType.Eq) 等等 用于快速开发查询接口 QueryBuilder.build(条件对象) 返回 Predicate 可交给SpringData 查询 ``` ### 非外键原则 ``` @Fetch(FetchMode.JOIN) @ManyToOne() @JoinColumn(name = "本实体ID", referencedColumnName = "关联ID", insertable = false, updatable = false, foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT)) @NotFound(action=NotFoundAction.IGNORE) ``` ## 权限 ``` 使用spring security ``` * 配置项 * WebSecurityConfig * 过滤器 * SecurityFilter * 注解 * PreAuthorize(AuthRoles.xxxExp) * 使用 * 实现LoginUser接口 * 调用JwtUtils.encode * 方法或者类上面加PreAuthorize注解 * 动态角色实现 AccessDecisionManager 接口 ## 集团实例 ``` 新建集团的时候会手动跑Flyway方法, 创建一个新实例 ```