Skip to content

ys305751572/springblade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Spring-Blade java开发平台

平台简介

Spring-Blade是基于多个优秀的开源项目,高度整合封装而成的快速开发平台。(主要用于交流学习)
感谢活跃于开源中国的各位前辈:jfinal作者、eova作者、hutool作者、beetl作者、dreamlu大牛等。
从c#转java的时候看着你们的代码学习了很多,当中有部分代码使用到了各位的源码,如果不能使用请及时联系我删除!
ps:因为喜欢刀锋战士所以取名了SpringBlade,当中有一个类也命名为Blade,但是后来发现已经有了一个高人气的开源作品:Blade,作者是 王爵。 很尴尬,不过还是需要在这儿声明一下。

内置功能

  1. 用户管理
  2. 角色管理
  3. 菜单管理
  4. 字典管理
  5. 部门管理
  6. 附件管理
  7. 参数管理
  8. 连接池监视
  9. 日志管理

技术选型

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<Maps> list = Db.init().selectList("select * form news where title = #{title}", Maps.create().set("title", "标题测试"));

自定义sql查询,返回String

	String editor = Db.init().queryStr("select editor form news where newsId = #{newsId}", Maps.create().set("newsId", 123));

根据条件修改

	boolean temp = Blade.create(News.class).updateBy("editor = #{editor}", "title = #{title}", Maps.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)})}", Maps.create().set("ids", idArr));

通用Service

	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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published