基于(SpringMVC+DATAJpa+shiro )的用户管理系统学习的总结
1.父类的抽取
一、实体类父类的抽取:
抽取公共的属性,公共的主键ID,这个类是不用生成实体类的,所以需要打上一个映射父类的注解@MappedSuperclass,且在ID这个字段上打上@Id、@GeneratedValue表示id是主键并且主键生成策略是递增。
二、分页功能的实现:
JPA的查询筛选功能是通过一个对象(Specification)来完成的,我们可以通过一个jpa-spec的jar包来实现简单的操作,完成这个对象的设定,添加查询条件。抽取一个查询的父类,里面定义基本的分页字段,每个类继承这个父类完成分页的操作,然后每个实体类去继承他,添加特殊的分页,排序字段即可。
三、持久层的父类抽取:
JPA已经帮我们完成了增删改查的功能实现,我们只需要在持久层里面去定义接口,继承一个JpaRepository和序列化接口Serializable,因为我们要使用specification,所以需要多继承一个JpaSpecificationExecutor类。其他的持久层如果有多余的查询需求,只需要添加自己的查询功能就行。
四、服务层父类的抽取:
为了简化代码,减少重复的代码,使用父接口去继承序列化接口,子接口直接继承父接口就行了。
2.权限设置
一、自定义realm
采用自定义realm来定义权限框架的授权认证和密码认证,并且在shiro框架自带的session中存入当前登录用户的对象,方便我们后面进行操作。
二、密码的加密功能
专门定义一个类来完成加密的功能,里面设定好系统的加密的常