#Spring-Blade java开发平台
Spring-Blade是基于多个优秀的开源项目,高度整合封装而成的快速开发平台。 PS:因为喜欢刀锋战士所以取名了SpringBlade,当中有一个类也命名为Blade。 但是后来发现已经有了一个高人气的开源作品:Blade,作者是 王爵。感觉很巧合,所以在这儿声明一下。
1.JFinal 2.eova 3.hutool 4.beetl 4.beetlsql 5.dreamlu 6.kisso
- 用户管理
- 角色管理
- 菜单管理
- 字典管理
- 部门管理
- 附件管理
- 参数管理
- 连接池监视
- 日志管理
1、后端
- 核心框架:Spring Framework
- 安全框架:Apache Shiro
- 视图框架:Spring MVC
- 服务端验证:Blade Validator
- 任务调度:Spring Task
- 持久层框架:beetlsql
- 模板引擎:beetl
- 数据库连接池:Alibaba Druid
- 缓存框架:Ehcache
- 日志管理:SLF4J、LOGBACKUP
- 工具类:Apache Commons、FastJson、EASYPOI、BladeToolBox
2、前端
- JS框架:jQuery
- CSS框架:Twitter Bootstrap
- 客户端验证:JQuery-html5Validate
- 富文本:KindEcitor
- 数据表格:jqGrid
- 树结构控件:jQuery zTree
- 弹出层:Layer
- 日期控件: LayDate
实体类
@Table(name = "notice")
@BindID(name = "id")
@SuppressWarnings("serial")
public class Notice extends BaseModel {
private String id;
private Integer creater;
private String content;
private String title;
private Date createTime;
@AutoID
@SeqID(name = "SEQ_NOTICE")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
.....................
}
新增
@ResponseBody
@RequestMapping(KEY_SAVE)
public AjaxResult save() {
Notice notice = mapping(PERFIX, Notice.class);
boolean temp = Blade.create(Notice.class).save(notice);
if (temp) {
return success(SAVE_SUCCESS_MSG);
} else {
return error(SAVE_FAIL_MSG);
}
}
修改
@ResponseBody
@RequestMapping(KEY_UPDATE)
public AjaxResult update() {
Notice notice = mapping(PERFIX, Notice.class);
boolean temp = Blade.create(Notice.class).update(notice);
if (temp) {
return success(UPDATE_SUCCESS_MSG);
} else {
return error(UPDATE_FAIL_MSG);
}
}
删除
@ResponseBody
@RequestMapping(KEY_REMOVE)
public AjaxResult remove(@RequestParam String ids) {
int cnt = Blade.create(Notice.class).deleteByIds(ids);
if (cnt > 0) {
return success(DEL_SUCCESS_MSG);
} else {
return error(DEL_FAIL_MSG);
}
}
自定义sql查询,返回map
List<Map> list = Db.selectList("select * form news where title = #{title}", Paras.create().set("title", "标题测试"));
自定义sql查询,返回String(使用多数据源)
String editor = Db.init("otherDb").queryStr("select editor form news where newsId = #{newsId}", Paras.create().set("newsId", 123));
根据md文件的sql执行修改
int cnt = Md.update("news.update", Paras.create().set("title", "标题测试").set("id", "1"));
根据条件修改
boolean temp = Blade.create(News.class).updateBy("editor = #{editor}", "title = #{title}", Paras.create().set("title", "测试标题").set("editor", "编辑一"));
根据条件删除
String ids = "1,2,3,4,5";
String[] idArr = ids.split(",");
int cnt = Blade.create(News.class).deleteBy("status in (#{join(ids)})", Paras.create().set("ids", idArr));
public interface NoticeService extends IService<Notice> {
}
@Service
public class NoticeServiceImpl extends BaseService<Notice> implements NoticeService {
}
@Autowired
NoticeService service;
@ResponseBody
@RequestMapping(KEY_SAVE)
public AjaxResult save() {
Notice notice = mapping(PERFIX, Notice.class);
boolean temp = service.save(notice);
if (temp) {
return success(SAVE_SUCCESS_MSG);
} else {
return error(SAVE_FAIL_MSG);
}
}
@ResponseBody
@RequestMapping(KEY_LIST)
public Object list() {
Object grid = paginate(LIST_SOURCE, new IQuery() {
@Override
public void queryBefore(AopContext ac) {
if (ShiroKit.lacksRole(ConstShiro.ADMINISTRATOR)) {
String condition = "and creater = #{creater}";
ac.setCondition(condition);
ac.getParam().put("creater", ShiroKit.getUser().getId());
}
}
@Override
public void queryAfter(AopContext ac) {
@SuppressWarnings("unchecked")
BladePage<Map<String, Object>> page = (BladePage<Map<String, Object>>) ac.getObject();
List<Map<String, Object>> list = page.getRows();
for (Map<String, Object> map : list) {
map.put("createrName", Func.getDictName(102, map.get("creater")));
}
}
});
return grid;
}
欢迎提出更好的意见,大家共同进步
SpringBlade主要用于交流学习,开源协议署名为smallchill的代码也可以进行商用。
但是如果因为商业用途引起的纠纷和造成的一切后果请自行承担,谢谢。
登陆名密码:两个 admin