jeecg-boot框架的使⽤总结
jeecg-boot框架的使⽤总结
⼀、jeecg-boot框架简介
JeecgBoot是⼀款基于BPM的低代码平台,⽀持微服务。强⼤的代码⽣成器让前后端代码⼀键⽣成,实现低代码开发。JeecgBoot引领新低代码开发模式:OnlineCoding-> 代码⽣成器-> ⼿⼯MERGE, 帮助Java项⽬解决70%的重复⼯作,让开发更多关注业务,既能快速提⾼效率,节省研发成本,同时⼜不失灵活性!
JeecgBoot框架总的来说有以下特性:
jeecg-boot是⼀个真正前后端分离的模版项⽬,便于⼆次开发,使⽤的都是较流⾏的新技术。
后端技术主要有spring-boot2.x、shiro、Mybatis-plus、redis等;
前端项⽬基于node.js、webpack构建,主要技术使⽤Vue、vuex、axios等。
作为模版项⽬,便于快速⼆次开发。
现成基本功能包括⽤户管理、⾓⾊管理、菜单管理(前端根据⾓⾊动态路由)、部门管理、
数据字典、消息中⼼、定时任务、及各种丰富的各种前端效果⽰例及最重要的代码⽣成功能。
全栈开发。
jeecg-boot为⼆次开发基础,适合⽤户。
⼆、jeecg-boot常⽤注解
jeecg-boot使⽤有lombok注解,swagger注解,springboot注解,⾃定义注解,导⼊导出Excel注解。
2.1 lombok注解
@Data注解在类上,会为类的所有属性⾃动⽣成setter/getter、equals、canEqual、hashCode、toString⽅法,注意如果为final属性,则不会为该属性⽣成setter⽅法。
也可以使⽤@Getter/@Setter注解添加到对应的属性上,则只⽣成对应属性的get/set⽅法;
@EqualsAndHashCode(callSuper = false) ,不调⽤⽗类的属性,那么⼦类属性相同的话,那hashcode的值就相同;
@Accessors(chain = true):chain的中⽂含义是链式的,设置为true,则setter⽅法返回当前对象,如果不加,则表⽰返回当前属性。2.2 swagger注解
在实体类Eneity上
1. @ApiModel()⽤于类
表⽰对类进⾏说明,⽤于参数⽤实体类接收。
@ApiModel(value="students对象", description="学⽣类")// swagger注解public class Students {
}
2. @ApiModelProperty()⽤于⽅法,字段
@ApiModel(value="students对象", description="学⽣类")// swagger注解public class Students {
@ApiModelProperty(value ="⽤户名",name="userName",example="张三") private String userName;
}
3. @ApiIgnore()⽤于类,⽅法,⽅法参数
表⽰这个⽅法或者类被忽略。
在接⼝类上
1. @Api()⽤于类
表⽰标识这个类是swagger的资源。
@ApiModel(value="user对象",description="⽤户对象user")
public class User implements Serializable{
springboot aopprivate static final long serialVersionUID =1L;
@ApiModelProperty(value="⽤户名",name="username",example="zhangsan")
private String username;
@ApiModelProperty(value="状态",name="state",required=true)
private Integer state;
private String password;
private String nickName;
private Integer isDeleted;
@ApiModelProperty(value="id数组",hidden=true)
private String[] ids;
private List<String> idList;//省略get/set
}
2. @ApiOperation()⽤于⽅法
表⽰⼀个http请求的操作。
@ApiOperation("更改⽤户信息")
@PostMapping("/updateUserInfo")
public int updateUserInfo(User user){
int num = userService.updateUserInfo(user);
return num;
}
3. @ApiParam()⽤于⽅法,参数,字段说明;
表⽰对参数的添加元数据(说明或是否必填等)。
@ApiOperation("更改⽤户信息")
@PostMapping("/updateUserInfo")
public int updateUserInfo(@RequestBody@ApiParam(name="⽤户对象",value="传⼊json格式",required=true) User user){ int num = userService.updateUserInfo(user);
return num;
}
4. @ApiImplicitParam() ⽤于⽅法
表⽰单独的请求参数。
@ApiOperation("查询测试")
@GetMapping("select")
@ApiImplicitParam(name="id",value="⽤户id",dataType="long", paramType ="query")
public void select(){}
5. @ApiImplicitParams() ⽤于⽅法,包含多个 @ApiImplicitParam
@ApiOperation("查询测试")
@GetMapping("select")
@ApiImplicitParams({
@ApiImplicitParam(name="name",value="⽤户名",dataType="string", paramType ="query",example="zhangsan"),
@ApiImplicitParam(name="id",value="⽤户id",dataType="long", paramType ="query")
})
public void select(){}
2.3 ⾃定义注解
1. @AutoLog
在需要记录⽇志信息的⽅法上添加@AutoLog注解,通过配置的切⾯类,即可插⼊数据库对应的⽇志信息。
/**
* 系统⽇志注解
*
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public@interface AutoLog {
/**
* ⽇志内容
*
* @return
*/
String value()default"";
/**
* ⽇志类型
*
* @return 0:操作⽇志;1:登录⽇志;2:定时任务;
*/
int logType()default CommonConstant.LOG_TYPE_2;
}
使⽤@interface表明是注解类
凡是在⽬标上使⽤@AutoLog都会触发AOP操作
2. @Dict
在⽣成的实体类的属性上添加@Dict注解,主要就是实现字符的转换,给前端提供想要的数据。
/**
* ⽇志类型(1登录⽇志,2操作⽇志)
*/
@Dict(dicCode ="log_type")
private Integer logType;
在前台查询时,会返回logType(对应的数据库的值),同时返回logType_dictText,为通过切⾯解析到的⽂本值。
3. @PermissionData
此注解是⽤来进⾏数据权限控制的。
①在前台页⾯对指定菜单添加数据规则;
②配置⾓⾊授予权限规则;
③在进⾏查询的⽅法上添加 @PermissionData(pageComponent=“text/StudentsList”)注解。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论