P2P后台管理系统原型搭建
在后台管理系统中,权限控制是比较复杂的功能了,讲解RBAC权限模型
我们需要完成的功能
▪ 项目原型搭建
▪ 用户登录
▪ 获取用户菜单权限及按钮权限
▪ 7天内免登陆
▪ 个人中心页面中,根据登录用户拥有的菜单权限显示菜单
▪ 功能权限(按钮权限的控制)
项目原型搭建
⒈搭建SpringBoot项目基础结构
① 创建Springboot项目16-p2p-admin
② 在16-p2p-admin的pom.xml中配置基础依赖
根据我们的技术选型,需要添加Jsp,Mybatis相关依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.apache.tomcat.embed
tomcat-embed-jasper
javax.servlet
javax.servlet-api
javax.servlet.jsp
javax.servlet.jsp-api
2.3.1
javax.servlet
jstl
org.springframework.boot
spring-boot-devtools
true
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
mysql
mysql-connector-java
commons-lang
commons-lang
2.5
③ 在16-p2p-admin的pom.xml文件中添加将指定资源编译到classpath的配置
src/main/java
**/*.xml
src/main/resources
**/*.*
src/main/webapp
META-INF/resources
**/*.*
④ 在16-p2p-admin的核心配置文件application.properties中配置项目端口及上下文
#配置Spring boot内嵌的tomcat的端口号
server.port=9600
#配置项目访问工程名
server.servlet.context-path=/p2p-admin
⑤ 在16-p2p-admin的核心配置文件application.properties中配置SpringBoot使用JSP展示数据
#配置springmvc视图展示层访问前缀,/斜杠表示访问src/main/webapp目录下的jsp页面
spring.mvc.view.prefix=/WEB-INF/jsp/
#配置springmvc视图展示层访问后缀,.jsp表示是jsp页面
spring.mvc.view.suffix=.jsp
⑥ 在16-p2p-admin的核心配置文件application.properties中配置数据库连接信息
#配置数据库连接(p2padmin)
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/p2padmin?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
⑦ 在16-p2p-admin下创建webapp/WEB-INF/jsp目录,并指定为WebResources Directory
⒉基于ACE搭建项目原型
① 从ACE原型中拷贝登录页面login.html,修改为index.jsp
添加jsp头信息
② 将ACE需要的js和css导入到我们的16-p2p-admin中
③ 放到webapp的WEB-INF目录下,WEB-INF下的资源是受保护的,不能直接访问。在16-p2p-admin的com.bjpowernode.p2p.admin.controller包下创IndexController,并提供index方法,用于跳转到登录页面
@Controller
public class IndexController {
@RequestMapping("/")
public String index(){
return "index";
}
}
④ 参照已有p2p-admin进行修改,独立将ACE页面原型改造成我们项目的原型(培养这种能力)
⒊使用Mybatis反向工程生成内容
① 拷贝逆向工程文件到16-p2p-admin中
② 在pom.xml文件中添加反向工程插件
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.7
GeneratorMapper.xml
true
true
③ 修改GeneratorMapper.xml生成用户UserInfo相关model和mapper
④ 修改GeneratorMapper.xml生成权限PermissionInfo相关model和mapper
⑤ 在生成的Mapper接口上添加@Mapper注解,被SpringBoot扫描到
⑥ 为了操作方便,在UserInfo中添加上两个属性,代表用户所拥有的菜单权限和按钮权限,并提供get|set方法
//当前用户拥有的所有菜单权限
private List menuPermissionInfoList;
//当前用户拥有的所有按钮权限
private List buttonPermissionInfoList;