Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Esesion/phone

Repository files navigation

自述

一个高可用,高效率,可重用性和可扩展性都还不错的基础框架

本项目使用jdk1.8开发,请确保运行环境为jdk1.8

本项目默认为单机部署,即只有phone-admin一个war包,若需要使用dubbo发布,需加入dubbo配置文件,并将service作为war包使用,后续会讲到.

  • 本项目架构采用Mybatis+Spring+SpringMVC作为基础框架
  • 使用apache-shiro作为安全登录及权限验证框架
  • 使用fastjson作数据处理
  • 使用slf4j+log4j做日志记录
  • 使用druid做连接池及监控
  • 采用mysql作为数据库
  • 使用kaptcha并二次开发作为验证码
  • 使用maven作为jar管理
  • 使用redis作为缓存
  • 使用poi导出excel

项目亮点:

  • 严格的权限控制,当然你也可以自己扩展..
  • 采用redis作为主键生成策略,无序考虑主键策略,且通用性相当不错.--技术详解
  • AOP加注解方式记录日志,日志内容清晰,记录方式简单.--技术详解
  • 简单易用的导出配置,助你5分钟实现导出,详见底部
  • 强大的代码生成器助你快速开发,配合mybatisGenerate使用,简单增删改查无需再写任何代码,所有常用方法一键生成,so easy..
  • 单表查询无需再写mybatis的配置文件,一个selectExtend解决大部分查询条件

项目来源

  • 给朋友做的一个系统,已删除核心代码,保留用户权限管理模块及登录日志和通用工具等模块.

FAQ:

为什么说简单增删改查无需写任何代码

  • 代码生成器可以解决大部分常用功能代码编写,常用注释编写,助你统一项目代码架构风格,generate项目为此而生

代码生成器怎么用?

GenerateMybatisGenerateConfig用于自动生成mybatisGenerate的配置文件,当然这个大部分时候并没有什么卵用..

  • mybatis自身支持所有表生成,使用%即可,不过这个生成器的诞生是因为我并没有去研究过mybatisGenerate,不过这个生成了删配置文件肯定比你删各种model,mapper要爽的多咯..
  • 注:代码生成器纯java编写,由于多次重构,或有些无用的代码未删除,但不影响使用,还望不要介意,我这人太TM懒了.
  • mybatisGenerate生成所有表示例配置:
<table tableName="%" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"></table>

GenerateServiceAndAction用于自动生成除Model和 Mapper.xml以外的所有代码,当然,前提是你的model是存在的,而且PK是作为主键的(你也可以自己改)

  • BaseGenerate:项目名配置,信息打印开关,写入文件还是打印控制台等
  • BaseScanBeanGenerate:各个包名的配置, 各个对象父类配置
  • GenerateServiceAndAction:信息打印开关,打印Dubbo配置文件,文件生成开关(控制是否生成Mapper,Service,ConsumerService,Proxy,Controller)

如何支持dubbo方式发布项目?

  • 1.GenerateServiceAndAction配置IS_DUBBO为true,或者自己手动修改service的@Service注解为dubbo的注解
  • 2.加入dubbo配置文件(service(提供者),consumerService(消费者)两边都需要配置,具体百度,网上很多),这里我就不列了
  • 3.安装zookeeper,研究不深,就会玩dubbo+zookeeper 套路.
  • 注意:
  • dubbo的扫描与shiro冲突,所以服务端需要使用配置文件的方式,如果您有更好的解决方案,谢谢留言--详见.
  • dubbo的扫描与SpringAOP事务冲突(AOP事务和注解方式都有冲突,调试发现AOP后dubbo获取的SpringProxy代理类,而不是dubbo的代理类),提供端需要使用手动事务或加一层壳,使用壳(提供者暴露接口用)调用service(AOP事务层),如果您有更好的解决方案,谢谢留言--.

如何实现导出功能?

  • 1.GenerateServiceAndAction配置GENERATE_EXPORT为true,或者自己手动编写,参考SysUserController(以下以SysUser为例讲解实现).
  • 2.配置phone-admin项目下src/main/resources/properties/excelExport.properties文件,key为SysUser,value为json,导出字段的对应中文.
  • 3.实现phone-core项目的com.ly.base.core.excel.export.ext.SysUserExcelExport,注释见父类ExcelExportSuper.
  • 方法说明:
  • formatValue:格式化非直接展示值的数据,如性别,DB中存储的为0或1,将其替换为女或男.t为当前对象,key为当前field.
    例如:switch (key) {case "sex":return "0".equals(t.getSex()) ? WOMAN :MAN;}
  • formatCondition:格式化查询条件,将查询条件展示到excel标题上.
    例如:StringBuffer sb = new StringBuffer();if (t.getName()!=null) {sb.append("姓名:"+t.getName()+BANK)}return sb.toString();.
  • getReportName:excel的文件名,如需修改请修改父类.
    例如:return "用户列表";则导出文件名为:用户列表2017年07月05日.
  • 更多方法配置请重写父类方法,方法说明请查看父类注释.

特别提醒

  • 数据验证请在Proxy中完善checkData方法
  • 条件查询请在Proxy中完善getConditions方法,使用条件查询务必在SysUserMapper.xml中复制一份selectExtend的sql,记得修改表名哦

QQ群:

  • 深圳Java程序员 199267671
  • 深圳Java(自学交流) 99281683

About

这只是一套简化开发的框架,主要技术使用Mybatis+Spring+SpringMVC+shiro,全局鉴权+自定鉴权,AOP日志,用熟了分分钟实现增删改查不是梦

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /