# bhudy **Repository Path**: paruny/bhudy ## Basic Information - **Project Name**: bhudy - **Description**: Java快速开发框架,基于技术(Spring MVC、Apache Shiro、MyBatis、Spring Boot)对crud有较完整的封装,可以单表或者多表关联查询,底层架构也非常具有参考意义、快速入手、是学习入门的首选。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-05-11 - **Last Updated**: 2021-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### BHUDY Java快速开发框架,基于技术(Spring MVC、Apache Shiro、MyBatis、Spring Boot)对crud有较完整的封装,可以单表或者多表关联查询,底层架构也非常具有参考意义、快速入手、是学习入门的首选。 ### 技术 - 核心框架:Spring Framework、Spring Boot - 安全框架:Apache Shiro - 视图框架:Spring MVC - 任务调度:quartz - 持久层框架:MyBatis - 数据库:Mysql - 缓存框架:Redis - 日志管理:slf4j - 工具类:POI ### 前端推荐 [vue-element-admin](https://gitee.com/panjiachen/vue-element-admin?_from=gitee_search) [无缝接入vue-element-admin](https://blog.csdn.net/qq_38003741/article/details/105388732) ### 功能 ```` - java - com - ktr 动环监控包 - utils 工具包 - KtrUtils 获取设备数据及数据解析工具类 - SerialComm 串口通信工具类 - sys bhudy系统包 - annotation 自定义注解 - ManyToOne 多对一表关联 - OneToMany 一对多表关联 - PrimaryKey 主键 - SkipAttribute 对有该注解的属性不做反射 - base 公共service层 - BaseService 公共BaseService接口 - BaseServiceImpl 公共BaseService实现类 - QueryFilter 查询条件 - Relation 数据库关键字枚举 - controller controller层 - dao 公共dao层 - BaseDao baseDao - entity 实体类 - exception 全局异常 - SysException 自定义异常 - SysExceptionCode 状态码及描述 - SysExceptionHandler 全局异常拦截器 - guacamole apache的guacamole,web版的远程桌面 - interceptor 拦截器 - BodyReaderHttpServletRequestWrapper 重写HttpServletRequest,复制request流 - HttpHelper 获取Body的值 - InterceptorConfig 添加拦截器 - SysFilter 过滤器 - SysInterceptor 自定义拦截器 - listener 监听器 - SysListener 程序生命周期监听器 - quartz 任务调度 - service service层 - impl service实现包 - shiro shiro安全框架 - CORSAuthenticationFilter shiro过滤器 - CustomSessionManager 重写DefaultWebSessionManager,解决跨域问题 - RetryLimitHashedCredentialsMatcher 登陆次数限制 - ShiroConfig shiro配置 - ShiroRealm 继承AuthorizingRealm,重写认证和授权方法 - utils 工具包 - AesCBCUtil AES-128-CBC加密 - ExcelUtil Excel处理工具类 - MailUtils 邮箱处理工具类 - MongodbUtils Mongodb工具类 - RedisUtil redis工具类 - RequestUtils Request返回数据格式化工具类 - ShiroUtils shiro工具类 - SnmpUtils snmp4j工具类 - SwaggerConfig 接口文档Config启动类 - TxtExportUtils 代码生成工具类 - Utils 工具类 - WeChatUtils 微信公众号和小程序工具类 - websocket websocket - ShellWebSocketServer shh websocket - SysWebSocketServer 发送页面消息websocket - WebSocketConfig 开启WebSocket支持 - WebSocketTunnel guacamole远程桌面websocket - resources - mapping papping映射文件 - static 静态文件 - templates 前端页面存在目录,如果使用vue这个文件就不要了 ```` ### 开始 ```` 1. 准备环境JDK1.8+、Maven3.2+、MySql5+、推荐使用idea开发工具。 2. 克隆项目 git clone https://gitee.com/bhudy/bhudy.git 3. 找到 resources.static.res.bhudy.sql 文件创建数据库 4. 运行 com.BhudyApplication.main 5. 访问http://127.0.0.1:8089/sysLogin (账号:bhy 密码:bhy00000) 6. 如果需要后端控制跳转登录页面需要把application.yml里面的bhudy.routerControl改成'0' ```` ### 开发 ```` - Test 实体类 - TestService service层继承 BaseService ↓↓↓ public interface TestService extends BaseService { } - TestServiceImpl service实现类继承 BaseServiceImpl 并且实现 TestService ↓↓↓ @Service public class TestServiceImpl extends BaseServiceImpl implements TestService { } - 简单的使用 ↓↓↓ @Autowired private TestService testService; QueryFilter queryFilter = new QueryFilter() testService.findList(queryFilter); - 带条件查询 ↓↓↓ @Autowired private TestService testService; QueryFilter queryFilter = new QueryFilter(); // 查询条件 第一个查询条件自动替换成where queryFilter.and("name", "张三"); // and查询name sql: and name = #{name} param: 张三 queryFilter.clear(); // 清除所有查询条件 queryFilter.andLike("name", "张三"); // andLike查询name sql: and name like #{name} param: 张三 queryFilter.or("age", 20); // or查询age sql: and age = #{age} param: 20 queryFilter.sql("and name = ?", "李四"); // 复杂查询使用sql语句查询 sql: and name = #{argMap.arg0} param: 李四 queryFilter.limit(0, 10); // 分页 queryFilter.order(Relation.ASC, "age") // 排序 testService.findList(queryFilter); // 查询列表 →→→ 更多功能等着您发现哦 ←←← ```` ### 打包发布 ```` 1. 如果打war包需要删除com.sys.websocket.WebSocketConfig类里面的serverEndpointExporter方法 2. pom.xml文件中找到packaging,有jar包和war包2个选择 3. 在idea中右侧找到Maven Project进行clean、package 操作即可在target目录下找到刚刚打好的程序包。 ````