BHUDYJava 快速开发框架

联合创作 · 2023-10-01 07:31

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

无缝接入vue-element-admin

功能

- 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<Test, Serializable> {

  }

- TestServiceImpl service实现类继承 BaseServiceImpl 并且实现 TestService ↓↓↓
  @Service
  public class TestServiceImpl extends BaseServiceImpl<Test, Serializable> 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目录下找到刚刚打好的程序包。
浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报