• 1 点赞

    Spring 之 JMS 监听JMS消息

    ????在调用JMS消息消费者的receive()方法接收消息时,调用线程在消息可用之前一直阻塞。该线程出了等待还是等待,无所事事。这样的消息接收是同步消息接收,因为只用等到消息到达才能接收线程的工作。 ?????有同步的消息接收就有异步的消息接收,异步的消息接收就是注册一个消
    码农村村长 码农村村长 发表于 1年前
  • 0 点赞

    Spring 之 JMS 基于JMS的RPC

    ??????使用JMS?PTP消息和pub/sub可以将两个应用系统集成在一起,在Spring中还提供了基于JMS的RPC方案。Spring?提供的方案有一个缺点就是只能使用点对点消息。 导出基于JMS的服务 JmsInvokerServiceExporter是Spring?提供的基于JMS服务导出的工厂类 ? <!-- --> <
    码农村村长 码农村村长 发表于 1年前
  • 7 点赞

    Spring的BeanFactory和FactoryBean

    1、 BeanFactory ??? BeanFactory定义了 IOC 容器的最基本形式,并提供了 IOC 容器应遵守的的最基本的接口,也就是Spring IOC 所遵守的最底层和最基本的编程规范。在? Spring 代码中, BeanFactory 只是个接口,并不是 IOC容器的具体实现,但是 Spring 容器给出了很多种实现,
  • 67 点赞

    Spring 3整合Quartz 2实现定时任务一:常规整合

    最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大。在考虑之后,决定整合更为专业的Quartz来实现定时任务功能。 首先,当然是添加依赖的jar文件,我的项目是maven管理的,以下的我项目的依赖: <dependenc
  • 153 点赞

    Spring 3整合Quartz 2实现定时任务二:动态添加任务

    前面,我们已经对Spring 3和Quartz 2用配置文件的方式进行了整合,如果需求比较简单的话应该已经可以满足了。但是很多时候,我们常常会遇到需要动态的添加或修改任务,而spring中所提供的定时任务组件却只能够通过修改xml中trigger的配置才能控制定时任务的时间以及任务的启用
  • 144 点赞

    Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务

    前面我们已经完成了spring 3和quartz 2的整合以及动态添加定时任务,我们接着来完善它,使之能支持更多的操作,例如暂停、恢复、修改等。 在动态添加定时任务中其实已经涉及到了其中的一些代码,这里我们再来细化的理一理。先来看一下我们初步要实现的目标效果图,这里我们只
  • 5 点赞

    spring JdbcTemplate实现通用的泛型dao一:主功能实现

    在项目中一直使用Mybaits,最近想自己搞个小项目,通过对比之后发现mybatis的优势并不是十分明显了,个人小项目倾向于更加简洁的DBUtils。Spring jdbc也实现了DBUtils基本一样的功能,项目中又刚好用到了spring,这当然是不二之选了。 Mybaits采用xml的方式,想要实现通用的da
  • 3 点赞

    改进版通用dao实现一:实现说明

    最近因为事情比较多好久没写博客,一晃居然都几个月了。 之前随手写的Spring JdbcTemplate实现通用的泛型dao 和spring整合quartz整合动态定时任务系列,没想到会有那么多人向我要源码和demo, 这里要说声抱歉了,因为之前写的时候并没有特地的整理及示范的demo,也因为博客一
  • 2 点赞

    改进版通用dao实现二:dao实现类

    前面我们已经定义好了接口,也贴出了如何使用的测试类,现在来说说dao类的实现。 其实dao类的实现并没有什么技术含量,无非就是根据传入的参数进行一个sql的拼装并执行而已,关键在于如何做才能方便和优雅一些。 先来看看实现类定义的一些成员变量: /** * jdbc操作dao *
  • 6 点赞

    改进版通用dao实现三:分页实现

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

    改进版通用dao实现四:源码及题外话

    至此,终于把这个烂尾的系列写完了,心中也不禁舒畅了下,终于可以给那些要源代码的人一个交代了。 接下来把那个定时任务系列也弄完就可以写我想写的博客了! 在实现到这里的时候,我也想过能不能把分表(分库通常由数据源完成)的操作也封装一下,但是因为分表操作往往和业务相
  • 175 点赞

    Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题

    之前已经把功能基本都实现了,这里我们再来优化一下代码。 我们发现,在创建、修改、和删除定时任务时,对于quartz的操作其实是可以封装成一个简单的工具辅助类的,如创建的代码可以抽取成: /** * 创建定时任务 * * @param scheduler the scheduler * @param jobName
  • 21 点赞

    Spring 整合Quartz 2实现定时任务五:集群、分布式架构实现探讨

    到这里,功能上我们已经全实现了。 但是有时候我们的项目不是部署在一台机器上的,而是一个集群环境,往往我们的定时任务只需要一台机器执行就够了。 那么我们怎么样来实现这种集群环境下的定时任务运行呢? 前面说的支持幂等性可以在一定程序上解决这个问题,网上有版本使用
  • 0 点赞

    Ehcache集成Spring缓存方法结果

    在实际的项目开发中,肯定会根据具体业务,数据大小,复杂度采用不同的技术实现方式,Ehcache在实际项目开发中一般被用来缓存方法结果集,且可以与Spring无缝集成,完全交由Spring——Aop拦截器来完成,我们只需处理好业务数据获取环节。 1.ehcache.xml配置: <ehcache>
    码农村村长 码农村村长 发表于 1年前
  • 0 点赞

    如何实现XA式、非XA式Spring分布式事务

    Spring应用的几种事务处理机制 Java Transaction API和XA协议是Spring常用的分布式事务机制,不过你可以选择选择其他的实现方式。理想的实现取决于你的应用程序使用何种资源,你愿意在性能、安全、系统稳健性、数据完整方面做出何种权衡。在这次JavaWorld大会上,来自SpringSo
    码农村村长 码农村村长 发表于 1年前
  • 0 点赞

    spring中少用的注解@primary解析

    这次看下spring中少见的注解@primary注解,例子 @Component public class MetalSinger implements Singer{ @Override public String sing(String lyrics) { return "I am singing with DIO voice: "+lyrics; } } ? public class OperaS
    码农村村长 码农村村长 发表于 1年前
  • 0 点赞

    Spring中使用自定义的注解校验器的实现

    ?????首先先学习一下注解,注解为我们在代码中添加信息提供了一种形式化的方法,使得我们在稍后的某个时刻可以方便地使用这些数据。 ????在日常的编码中我们一直都在使用注解,只是没有特别关注过,Java中内置了三种注解:@Override,@SuppressWarnings @Deprecated。相信只要
    码农村村长 码农村村长 发表于 1年前
  • 6 点赞

    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
  • 4 点赞

    让项目、Spring在不同的环境加载不同的配置文件

    最近网站更新的有点频繁,以前这类发布的事情都有运维专人来搞定, 现在什么都自己弄,很多地方就觉得太麻烦了, 就拿这个项目发布来说,每次把项目拉到服务器上,都要修改一下数据库以及其它 一些 如静态目录等properties的配置文件,就觉得很烦,终于在这两天受不了了,决定
  • 3 点赞

    通用JdbcDao更新,增加括号支持

    本次更新到 2015-10-9 V1.0.2版本 该版本增加了括号的支持,可以实现不同的属性在括号内or的情况,示例: Criteria criteria = Criteria.create(User.class) .where("userType", new Object[] { "1" }).beginBracket() .and("loginName&quot