• Spring Security系列四 自定义决策管理器(动态权限码)

    前言 前面我们已经实现了用户的自定义登录及密码的加密,接下来就是动态的权限验证了,也就是实现Spring Security的决策管理器AccessDecisionManager。 权限资源 SecurityMetadataSource 要实现动态的权限验证,当然要先有对应的访问权限资源了。Spring Security是通过Securit
    selfly 发表于1年前 阅读(20905) 评论(117)
  • Spring Security系列三 用户密码加密实现

    前言 Spring Security系列二 用户登录认证数据库实现中,我们已经把对用户的认证改成了数据库实现,功能上虽然完成了,但是用户的密码却都是以明文保存的,这在实际项目中安全系数上会有所欠缺。在本章中我们将实现如何对用户的密码进行加密。 Spring Security中的密码加密 在
    selfly 发表于1年前 阅读(25319) 评论(6)
  • Spring Security系列二 用户登录认证数据库实现

    前言 在前面Spring Security系列一 权限控制基本功能实现中,我们已经实现了基本功能,这一章我们来把用户的登录认证修改成贴近实际的数据库获取。 Spring Security认证架构 在这之前,先来了解一下Spring Security的认证架构,有篇不错的分析文章,具体可以看这里:https://m
    selfly 发表于1年前 阅读(8166) 评论(6)
  • Spring Boot整合spring-ws调用web service服务

    前言 前面我们已经整合spring-ws实现了web service的服务端:Spring Boot整合spring-ws开发web service 接下来就是实现客户端进行调用了。 添加依赖 客户端,同样的需要先添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <
    selfly 发表于1年前 阅读(37852) 评论(2)
  • 通用JdbcDao更新,增加动态数据源,支持权重和读写分离

    版本:V1.2.3 本次更新增加了动态数据源的支持,可以十分方便的在配置文件中将原来的单数据源修改成动态数据源,而无须修改任何的业务代码。 下面来看看如何使用动态数据源,关于动态数据源的实现,请看这里:Spring实现动态数据源,支持动态添加、删除和设置权重及读写分离
    selfly 发表于1年前 阅读(6341) 评论(0)
  • Spring实现动态数据源,支持动态添加、删除和设置权重及读写分离

    当项目慢慢变大,访问量也慢慢变大的时候,就难免的要使用多个数据源和设置读写分离了。 在开题之前先说明下,因为项目多是使用Spring,因此以下说到某些操作可能会依赖于Spring。 在我经历过的项目中,见过比较多的读写分离处理方式,主要分为两步: 1、对于开发人员,要求se
    selfly 发表于1年前 阅读(12822) 评论(3)
  • 基于spring JdbcTemplate改进版通用dao的使用及实现三:SuperDao类的设计和实现

    前面讲了如何使用,该讲讲如何实现了。 其实技术上并没有什么难度,主要就是一个设计思路。 先来讲解一下superDao,大体上跟前面实现的原理没有什么变化,主要就是添加了根据class对象查询及组合使用。 先来看一下superDao的使用声明: <bean id="superDao" clas
    selfly 发表于1年前 阅读(11517) 评论(5)
  • 基于spring JdbcTemplate改进版通用dao的使用及实现二:使用分页

    在通用dao中,分页功能被封装的十分方便。 并且它可以和前面的各类查询、组合查询结合使用,完全不冲突。 另外,分页的封装是基于JdbcTemplate,也就是说你自己实现的其它各类dao也都可以使用它而非局限于默认提供的SuperDao。 你无须关心数据库类型,它会自动判断为你生成分
    selfly 发表于1年前 阅读(7358) 评论(0)
  • spring事务设置read-only无效的问题

    由于需要大批量的迁移数据(上千万),弄了个迁移工具。 千万的数据,不适宜一次性的提交或回滚事务,中间需要分批提交,在设置事务的过程中,居然发现spring的声明式事务中设置的方法read-only级别无效。 见下面代码: <tx:advice id="txAdvice" transaction-ma
    selfly 发表于1年前 阅读(10082) 评论(0)
  • jdbcTemplate的queryForXXX方法抛出异常解决

    工具包的通用dao中,封装了一个获取大字段blob的方法,初始代码如下: String sql = String.format(tmp_sql, columnName, tableName, primaryName); return (byte[]) jdbcTemplate.queryForObject(sql, new Object[] { id }, new RowMapper<Object>() {
    selfly 发表于1年前 阅读(8152) 评论(0)
  • Spring JdbcTemplate实现通用的超级dao,比泛型dao更加强大(续)

    前面介绍了一些基本方法的使用,除了不用一个实体类对应的dao外没多大区别,接下来介绍的就是本次改进的重点了。 封装完成之后,用这个通用dao做了个小站,在使用过程中,速度提升不少,但是还有些小细节不够完美,目前感受到的有以下: 1、一个字段等于多个值的or方式查询实
    selfly 发表于1年前 阅读(8063) 评论(3)
  • Spring JdbcTemplate实现通用的超级dao,比泛型dao更加强大

    这两天比较忙,没抽出什么时间,这一停顿居然已经有2个评论了,无疑增添了我的不少动力。 在开始之前,先说下前面实现的通用泛型dao,在第四篇 通用自定义转换到JavaBean的RowMapper实现中,把获取属性的操作也放到了mapRow的方法中,这会导致在每一行数据转换的时候都会获取
    selfly 发表于1年前 阅读(28555) 评论(3)
  • spring mvc实现Restful返回json格式数据

    在本示例中,我们将向您展示如何将对象转换成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
    selfly 发表于1年前 阅读(50484) 评论(0)
  • spring mvc实现Restful返回xml格式数据

    最近,想在自己的小项目中搭建一个Restful风格的服务接口api,项目用的spring mvc 3,听说spring mvc本身就能十分方便的支持restful的实现,于是查询了下资料,果然非常强大。 在一次偶然的#墙#外#(你懂的)状态下浏览到了一个老外的博客,举了几个入门例子十分经典,原文是E文
    selfly 发表于1年前 阅读(26055) 评论(0)
  • SpringMVC Redirect 跳转后保存Model中的数据

    在做项目编码时,几乎都不可避免的要用到Redirect跳转并保存其中的参数。例如下面的需求: 在用户的列表页面删除一个用户,在删除后仍停留在列表页面,但是要显示删除成功或者相应的错误信息。 以上这种情况在后台我们一般都分成2个controller,一个删除的controller和一个查
    selfly 发表于1年前 阅读(38286) 评论(0)
  • Spring 4 MVC中使用@RestController来构建Restful Web Service

    在本示例中,我们将使用最新的Spring 4 MVC中提供的@RestController,使用最少的代码来构建一个Restful Web Service,支持返回xml或json数据,这个可以让用户选择,通过URL后缀.xml或.json来完成。 使用的组件版本: Spring 4.1.7.RELEASE jackson-core 2.5.4 jackson-databin
    selfly 发表于1年前 阅读(37330) 评论(4)
  • Spring 整合Quartz 2实现定时任务五:集群、分布式架构实现探讨

    到这里,功能上我们已经全实现了。 但是有时候我们的项目不是部署在一台机器上的,而是一个集群环境,往往我们的定时任务只需要一台机器执行就够了。 那么我们怎么样来实现这种集群环境下的定时任务运行呢? 前面说的支持幂等性可以在一定程序上解决这个问题,网上有版本使用
    selfly 发表于1年前 阅读(32430) 评论(10)
  • Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题

    之前已经把功能基本都实现了,这里我们再来优化一下代码。 我们发现,在创建、修改、和删除定时任务时,对于quartz的操作其实是可以封装成一个简单的工具辅助类的,如创建的代码可以抽取成: /** * 创建定时任务 * * @param scheduler the scheduler * @param jobName
    selfly 发表于1年前 阅读(69652) 评论(1567)
  • 改进版通用dao实现四:源码及题外话

    至此,终于把这个烂尾的系列写完了,心中也不禁舒畅了下,终于可以给那些要源代码的人一个交代了。 接下来把那个定时任务系列也弄完就可以写我想写的博客了! 在实现到这里的时候,我也想过能不能把分表(分库通常由数据源完成)的操作也封装一下,但是因为分表操作往往和业务相
    selfly 发表于1年前 阅读(50038) 评论(663)
  • 改进版通用dao实现三:分页实现

    前面我们已经实现了dao的增删改查功能,但是在封装的查询方法中并没有分页方法,那么我们又要如何来实现呢? 先来看看分页查询的代码: @Test public void queryList1() { User user = new User(); PageControl.performPage(user); jdbcDao.queryList(user);
    selfly 发表于1年前 阅读(9702) 评论(6)