前言 前面我们已经实现了用户的自定义登录及密码的加密,接下来就是动态的权限验证了,也就是实现Spring Security的决策管理器AccessDecisionManager。 权限资源 SecurityMetadataSource 要实现动态的权限验证,当然要先有对应的访问权限资源了。Spring Security是通过Securit
1年前发布 49636阅读 评论
前言 Spring Security系列二 用户登录认证数据库实现中,我们已经把对用户的认证改成了数据库实现,功能上虽然完成了,但是用户的密码却都是以明文保存的,这在实际项目中安全系数上会有所欠缺。在本章中我们将实现如何对用户的密码进行加密。 Spring Security中的密码加密 在
1年前发布 47949阅读 评论
前言 在前面Spring Security系列一 权限控制基本功能实现中,我们已经实现了基本功能,这一章我们来把用户的登录认证修改成贴近实际的数据库获取。 Spring Security认证架构 在这之前,先来了解一下Spring Security的认证架构,有篇不错的分析文章,具体可以看这里:https://m
1年前发布 16320阅读 评论
前言 前面我们已经整合spring-ws实现了web service的服务端:Spring Boot整合spring-ws开发web service 接下来就是实现客户端进行调用了。 添加依赖 客户端,同样的需要先添加依赖: <dependency> <groupId>org.springframework.boot</groupId> &lt
1年前发布 55370阅读 评论
注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库 或 码云 版本:V1.2.3 本次更新增加了动态数据源的支持,可以十分方便的在配置文件中将原来的单数据源修改成动态数据源,而无须修改任何的业务代码。 下面来看看如何使用动态数据源,关于
1年前发布 9302阅读 评论
当项目慢慢变大,访问量也慢慢变大的时候,就难免的要使用多个数据源和设置读写分离了。 在开题之前先说明下,因为项目多是使用Spring,因此以下说到某些操作可能会依赖于Spring。 在我经历过的项目中,见过比较多的读写分离处理方式,主要分为两步: 1、对于开发人员,要求se
1年前发布 19634阅读 评论
注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库 或 码云 前面讲了如何使用,该讲讲如何实现了。 其实技术上并没有什么难度,主要就是一个设计思路。 先来讲解一下superDao,大体上跟前面实现的原理没有什么变化,主要就是添加了根据clas
1年前发布 14872阅读 评论
注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库 或 码云 在通用dao中,分页功能被封装的十分方便。 并且它可以和前面的各类查询、组合查询结合使用,完全不冲突。 另外,分页的封装是基于JdbcTemplate,也就是说你自己实现的其它各类dao
1年前发布 10637阅读 评论
由于需要大批量的迁移数据(上千万),弄了个迁移工具。 千万的数据,不适宜一次性的提交或回滚事务,中间需要分批提交,在设置事务的过程中,居然发现spring的声明式事务中设置的方法read-only级别无效。 见下面代码: <tx:advice id="txAdvice" transaction-ma
1年前发布 15753阅读 评论
工具包的通用dao中,封装了一个获取大字段blob的方法,初始代码如下: String sql = String.format(tmp_sql, columnName, tableName, primaryName); return (byte[]) jdbcTemplate.queryForObject(sql, new Object[] { id }, new RowMapper<Object>() {
1年前发布 12454阅读 评论
注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库 或 码云 前面介绍了一些基本方法的使用,除了不用一个实体类对应的dao外没多大区别,接下来介绍的就是本次改进的重点了。 封装完成之后,用这个通用dao做了个小站,在使用过程中,速度提
1年前发布 11146阅读 评论
注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库 或 码云 这两天比较忙,没抽出什么时间,这一停顿居然已经有2个评论了,无疑增添了我的不少动力。 在开始之前,先说下前面实现的通用泛型dao,在第四篇 通用自定义转换到JavaBean的RowMap
1年前发布 35940阅读 评论
在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。 使用技术及环境: Spring 3.2.2.RELEASE Jackson 1.9.10 JDK 1.6 Eclipse 3.6 Maven 3 PS:在spring 3 中,要输出json数据,只需要添加Jackson 库到你的classpath。 1、项目依赖 spring
1年前发布 57947阅读 评论
最近,想在自己的小项目中搭建一个Restful风格的服务接口api,项目用的spring mvc 3,听说spring mvc本身就能十分方便的支持restful的实现,于是查询了下资料,果然非常强大。 在一次偶然的#墙#外#(你懂的)状态下浏览到了一个老外的博客,举了几个入门例子十分经典,原文是E文
1年前发布 31439阅读 评论
在做项目编码时,几乎都不可避免的要用到Redirect跳转并保存其中的参数。例如下面的需求: 在用户的列表页面删除一个用户,在删除后仍停留在列表页面,但是要显示删除成功或者相应的错误信息。 以上这种情况在后台我们一般都分成2个controller,一个删除的controller和一个查
1年前发布 41818阅读 评论
在本示例中,我们将使用最新的Spring 4 MVC中提供的@RestController,使用最少的代码来构建一个Restful Web Service,支持返回xml或json数据,这个可以让用户选择,通过URL后缀.xml或.json来完成。 使用的组件版本: Spring 4.1.7.RELEASE jackson-core 2.5.4 jackson-databin
1年前发布 46570阅读 评论
到这里,功能上我们已经全实现了。 但是有时候我们的项目不是部署在一台机器上的,而是一个集群环境,往往我们的定时任务只需要一台机器执行就够了。 那么我们怎么样来实现这种集群环境下的定时任务运行呢? 前面说的支持幂等性可以在一定程序上解决这个问题,网上有版本使用
1年前发布 38180阅读 评论
之前已经把功能基本都实现了,这里我们再来优化一下代码。 我们发现,在创建、修改、和删除定时任务时,对于quartz的操作其实是可以封装成一个简单的工具辅助类的,如创建的代码可以抽取成: /** * 创建定时任务 * * @param scheduler the scheduler * @param jobName
1年前发布 86277阅读 评论
注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库 或 码云 至此,终于把这个烂尾的系列写完了,心中也不禁舒畅了下,终于可以给那些要源代码的人一个交代了。 接下来把那个定时任务系列也弄完就可以写我想写的博客了! ![spring-jdbc2][]
1年前发布 62077阅读 评论
注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库 或 码云 前面我们已经实现了dao的增删改查功能,但是在封装的查询方法中并没有分页方法,那么我们又要如何来实现呢? 先来看看分页查询的代码: @Test public void queryList1() { Us
1年前发布 12378阅读 评论