这是一个基于Spring MVC、MyBatis和ExtJS技术栈开发的企业级权限管理系统平台。项目采用经典的SSM(Spring + SpringMVC + MyBatis)框架,前端使用ExtJS构建富客户端界面,实现了用户、角色、模块、权限等核心功能的完整管理。
- Spring Framework 3.1.0: IoC容器和AOP框架
- Spring MVC 3.1.0: MVC Web框架
- MyBatis 3.0.6: ORM持久层框架
- MyBatis-Spring 1.0.2: MyBatis与Spring集成
- Apache Shiro 1.1.0: 安全认证和授权框架
- ExtJS: 企业级JavaScript框架
- HTML/CSS/JavaScript: 前端基础技术
- MySQL: 关系型数据库
- BoneCP: 高性能数据库连接池
- Maven: 项目构建和依赖管理
- Java 1.6+: JDK版本
- Jackson 1.9.3: JSON数据处理
- SLF4J + Logback: 日志框架
- JUnit 4.8.2: 单元测试
- EasyMock 3.1: Mock测试框架
- 用户的增删改查
- 用户信息维护
- 用户状态管理
- 用户角色分配
- 角色的创建、编辑、删除
- 角色权限分配
- 角色与用户关联
- 角色与模块关联
- 系统模块配置
- 模块权限设置
- 模块树形结构管理
- 菜单权限控制
- 基于角色的访问控制(RBAC)
- 细粒度权限控制
- 字段级权限管理
- 动态权限验证
- 用户登录/登出
- 验证码验证
- 文件上传
- 国际化支持
- 拦截器权限控制
springmvc-mybatis-extjs/
├── pom.xml # Maven项目配置文件
├── src/
│ ├── main/
│ │ ├── java/ # Java源代码
│ │ │ └── com/chenxin/authority/
│ │ │ ├── web/ # Web层
│ │ │ │ ├── controller/ # 控制器
│ │ │ │ │ ├── UserController.java # 用户控制器
│ │ │ │ │ ├── RoleController.java # 角色控制器
│ │ │ │ │ ├── ModuleController.java # 模块控制器
│ │ │ │ │ ├── FieldController.java # 字段控制器
│ │ │ │ │ ├── LoginController.java # 登录控制器
│ │ │ │ │ └── ...
│ │ │ │ ├── interseptor/ # 拦截器
│ │ │ │ │ └── LoginInterceptor.java # 登录拦截器
│ │ │ │ └── listener/ # 监听器
│ │ │ │ └── SystemInitListener.java # 系统初始化
│ │ │ ├── service/ # 服务层
│ │ │ ├── dao/ # 数据访问层(MyBatis Mapper)
│ │ │ │ ├── BaseUsersMapper.java
│ │ │ │ ├── BaseRolesMapper.java
│ │ │ │ ├── BaseModulesMapper.java
│ │ │ │ └── ...
│ │ │ └── entity/ # 实体类
│ │ ├── resources/ # 配置文件
│ │ │ ├── config/ # Spring配置
│ │ │ │ ├── spring/
│ │ │ │ │ ├── springmvc-servlet.xml # SpringMVC配置
│ │ │ │ │ └── spring-pool.xml # 数据源配置
│ │ │ │ ├── ibatis/
│ │ │ │ │ ├── mybatis-config.xml # MyBatis配置
│ │ │ │ │ └── jdbc.properties # 数据库连接配置
│ │ │ │ └── others/
│ │ │ │ ├── config.properties # 系统配置
│ │ │ │ └── messages*.properties # 国际化资源
│ │ │ ├── sqlmap/ # MyBatis SQL映射文件
│ │ │ │ ├── BaseUsersMapper.xml
│ │ │ │ ├── BaseRolesMapper.xml
│ │ │ │ └── ...
│ │ │ └── logback.xml # 日志配置
│ │ └── webapp/ # Web资源
│ │ ├── WEB-INF/
│ │ │ ├── web.xml # Web应用配置
│ │ │ └── views/ # JSP视图
│ │ └── resources/ # 静态资源
│ │ ├── css/ # 样式文件
│ │ ├── images/ # 图片资源
│ │ └── js/ # JavaScript文件
│ └── test/ # 测试代码
│ └── java/
│ └── com/chenxin/authority/
│ ├── controller/ # 控制器测试
│ └── service/ # 服务层测试
└── .springBeans # Spring IDE配置
- JDK: 1.6 或以上
- Maven: 3.0+
- MySQL: 5.5+
- Web容器: Tomcat 7.0+ / Jetty / 其他Java EE容器
- Eclipse / IntelliJ IDEA
- MySQL Workbench / Navicat
- Postman(API测试)
# 检查Java环境
java -version
# 检查Maven环境
mvn -version
# 确保MySQL服务已启动
mysql --version# 创建数据库
mysql -u root -p
CREATE DATABASE authority DEFAULT CHARACTER SET utf8;
# 导入数据库脚本(如果有提供)
# mysql -u root -p authority < database.sql
# 修改数据库连接配置
# 编辑 src/main/resources/config/ibatis/jdbc.propertiesjdbc.properties 配置示例:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/authority?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=your_password# 进入项目目录
cd springmvc-mybatis-extjs
# Maven编译
mvn clean compile
# 打包
mvn clean package方式一:使用Maven Tomcat插件
# 添加Tomcat插件配置到pom.xml后
mvn tomcat7:run
# 访问地址
http://localhost:8080/authority方式二:部署到Tomcat
# 将target目录下的war包复制到Tomcat的webapps目录
cp target/authority-1.0.0.war $TOMCAT_HOME/webapps/
# 启动Tomcat
$TOMCAT_HOME/bin/startup.sh
# 访问地址
http://localhost:8080/authority-1.0.0/方式三:在IDE中运行
- 导入Maven项目到Eclipse/IDEA
- 配置Tomcat服务器
- 部署项目并启动
- 访问应用
# 默认访问地址
http://localhost:8080/authority
# 登录页面
http://localhost:8080/authority/login
# 默认账号(需要查看数据库初始化脚本)
用户名: admin
密码: admin123
- Maven项目对象模型文件
- 定义项目依赖和构建配置
- 包含Spring、MyBatis、Shiro等核心依赖
- Web应用配置文件
- 配置Spring容器初始化
- 配置DispatcherServlet
- 配置字符编码过滤器
- SpringMVC核心配置
- 组件扫描配置
- 视图解析器配置
- 拦截器配置
- JSON转换器配置
- MyBatis全局配置
- 类型别名配置
- 插件配置
- 映射器配置
- 用户登录/登出
- 验证码生成
- Session管理
- 用户CRUD操作
- 用户角色分配
- 用户数据导出
- 角色管理
- 角色权限配置
- 角色用户关联
- 模块管理
- 权限配置
- 菜单树构建
- 登录状态验证
- 权限检查
- 请求拦截
MyBatis Mapper接口和XML映射文件:
- BaseUsersMapper: 用户数据操作
- BaseRolesMapper: 角色数据操作
- BaseModulesMapper: 模块数据操作
- BaseFieldsMapper: 字段权限操作
- 表现层(Web Layer): SpringMVC控制器处理HTTP请求
- 业务层(Service Layer): 业务逻辑处理,事务管理
- 持久层(DAO Layer): MyBatis数据访问
- 基于Apache Shiro的安全框架
- RBAC权限模型
- 拦截器实现权限验证
- 支持细粒度的字段级权限
- RESTful API设计
- JSON数据格式
- ExtJS前端组件
- Controller负责请求处理和响应
- Service处理业务逻辑
- Mapper只做数据访问
- 使用@Transactional进行事务管理
- 使用SLF4J + Logback
- 日志级别可在logback.xml中配置
- 支持控制台和文件输出
- BoneCP高性能连接池
- MyBatis二级缓存
- 延迟加载配置
- 合理使用索引
- 修改默认管理员密码
- 配置HTTPS访问
- 启用CSRF防护
- 定期更新依赖版本
- 数据库连接信息加密
- 添加日志审计功能
- 集成单点登录(SSO)
- 增加数据权限控制
- 实现API接口文档
- 添加监控和性能分析
- 项目使用较旧版本的框架,建议升级到最新稳定版
- Spring 3.1、MyBatis 3.0已有新版本
- 注意SQL注入和XSS攻击防护
- 生产环境需要调整日志级别和性能参数