- 浏览: 2081751 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (196)
- groovy&grails (0)
- gis (3)
- Linux (12)
- spring (15)
- database (1)
- jquery (4)
- chrome (3)
- java基础 (1)
- java高级 (3)
- hibernate (1)
- hadoop (2)
- javascript OOP (1)
- spring4.0系列 (10)
- spring boot (4)
- spring-boot (13)
- PaaS (20)
- OpenSource (1)
- docker (13)
- 点睛Spring4.1 (20)
- 非技术 (4)
- fedora21 (5)
- golang (2)
- CloudStack (2)
- puppet (2)
- tools (2)
- apache mesos (5)
- 点睛Spring MVC 4.1 (10)
- Mac (1)
- Spring 4.2新特性 (4)
- work (1)
- news (7)
- postgresql (2)
- IntelliJ IDEA (1)
- XenServer (2)
- docker swarm Portainer (1)
- kargo (1)
- ansible (1)
- kubernetes (8)
- Spring Data JPA (3)
- spring cloud (3)
- Spring Data (2)
- Hibernate-Spatial (1)
- PostGIS (1)
- jsonb (1)
- minikube (1)
- geojson (1)
- geometry (1)
- spring mvc (1)
- kuberspay (1)
- kubespray (2)
- kubectl (2)
- spring securityhttps://www.youtube.com/watch?v=R8m48ARSTm4 (1)
- spark (1)
- cassandra (1)
- spark-cassandra-connector (1)
- Spring Security (1)
- spring batch (1)
- elaticsearch (1)
- kettle (1)
- data integration (1)
- Spring Data Jest (1)
- Elasticsearch (3)
- Spring boot 2.0 (2)
- OAUTH2 (1)
- SseEmitter (1)
- @EventListener (1)
- Spring Cloud Sleuth (1)
- Zipkin (1)
- Kafka (1)
- fluentd (1)
- kibana (1)
- 审计 (1)
- https://blog.csdn.net/wiselyman (1)
- k8s (2)
- Strimzi (1)
- Kafka Connect (1)
- debezium (1)
最新评论
-
lhs472194266:
我在搜索是,面临一个问题,是用maven 将第三方jar包的s ...
如何在IntelliJ IDEA中检索maven依赖jar包的源码 -
淡炒番茄:
博主,你这个认证服务器是个单应用,作微服务、我要用几个认证服务 ...
Spring Cloud下基于OAUTH2认证授权的实现 -
lianghuado:
Spring4.0系列9-websocket简单应用 -
yangjianzhouctgu:
汪老师,你好,我想就spring boot测试方面的问题请教一 ...
Spring Boot使用自定义的properties -
dyj025:
wiselyman 写道dyj025 写道楼主源码访问不了.可 ...
Spring Cloud下基于OAUTH2认证授权的实现
需求为:当客户已有系统的数据被同步到我方数据库后,若再有新数据,只同步新数据到我方数据库。
解决:因为客户的业务表是不能变动的,我方在客户数据库中新建一状态表,记录哪些数据被更新过。
当客户业务表有新数据插入时,用触发器将新数据id插入到状态表。
为方便实例:业务表pp,状态表status
结构为:
pp:
CREATE TABLE `pp` (
`name` varchar(255) default NULL,
`address` varchar(255) default NULL,
`id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
status:
CREATE TABLE `status` (
`id` int(11) NOT NULL auto_increment,
`status` varchar(255) default 'new',
`ppid` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
触发器:
DROP TRIGGER if EXISTS mytrigger
CREATE TRIGGER mytrigger after INSERT on pp
for EACH ROW
BEGIN
INSERT into `status`(ppid) values(new.id);
END;
核心配置:jdbc-inbound-context.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:int="http://www.springframework.org/schema/integration" xmlns:int-jdbc="http://www.springframework.org/schema/integration/jdbc" xmlns:int-jms="http://www.springframework.org/schema/integration/jms" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd http://www.springframework.org/schema/integration/jdbc http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc-2.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms-2.0.xsd"> <context:component-scan base-package="com.wisely.inbound"/> <int:channel id="target"/> <int-jdbc:inbound-channel-adapter channel="target" data-source="dataSource" query="select p.id as ppid,p.name as ppname from pp p,status s where p.id=s.ppid and s.status='new'" update="update status as st set st.status='old' where ppid in (:ppid)" > <!-- 每隔多少毫秒去抓取 --> <int:poller fixed-rate="5000" > <int:transactional/> </int:poller> <!-- 指定时刻抓取 <int:poller max-messages-per-poll="1"> <int:transactional/> <int:cron-trigger expression="0 0 3 * * ?"/> </int:poller> --> </int-jdbc:inbound-channel-adapter> <int:service-activator input-channel="target" ref="jdbcMessageHandler"/> <context:property-placeholder location="classpath*:META-INF/spring/*.properties"/> <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> <property name="driverClassName" value="${database.driverClassName}"/> <property name="url" value="${database.url}"/> <property name="username" value="${database.username}"/> <property name="password" value="${database.password}"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> </beans>
JdbcMessageHandler:
package com.wisely.inbound.jdbc; import java.util.List; import java.util.Map; import org.springframework.integration.annotation.ServiceActivator; import org.springframework.stereotype.Component; @Component public class JdbcMessageHandler { @ServiceActivator public void handleJdbcMessage(List<Map<String ,Object>> message){ for(Map<String,Object> resultMap:message){ System.out.println("组:"); for(String column:resultMap.keySet()){ System.out.println("字段:"+column+" 值:"+resultMap.get(column)); } } } }
测试类:
package com.wisely.inbound.jdbc; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class JdbcInbound { /** * @param args */ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring/jdbc-inbound-context.xml"); } }
若将channel改为jms的通道。配置文件做以下修改:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:int="http://www.springframework.org/schema/integration" xmlns:int-jdbc="http://www.springframework.org/schema/integration/jdbc" xmlns:int-jms="http://www.springframework.org/schema/integration/jms" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd http://www.springframework.org/schema/integration/jdbc http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc-2.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms-2.0.xsd"> <context:component-scan base-package="com.wisely.inbound"/> <int-jms:channel id="target" queue-name="jdbc.queue" connection-factory="connectionFactory"/> <int-jdbc:inbound-channel-adapter channel="target" data-source="dataSource" query="select p.id as ppid,p.name as ppname from pp p,status s where p.id=s.ppid and s.status='new'" update="update status as st set st.status='old' where ppid in (:ppid)" > <!-- 每隔多少毫秒去抓取 --> <int:poller fixed-rate="5000" > <int:transactional/> </int:poller> <!-- 指定时刻抓取 <int:poller max-messages-per-poll="1"> <int:transactional/> <int:cron-trigger expression="0 0 3 * * ?"/> </int:poller> --> </int-jdbc:inbound-channel-adapter> <!-- <int-jms:message-driven-channel-adapter id="queInbound" destination-name="jmsQueue" channel="target"/> --> <int:service-activator input-channel="target" ref="jdbcMessageHandler"/> <context:property-placeholder location="classpath*:META-INF/spring/*.properties"/> <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource"> <property name="driverClassName" value="${database.driverClassName}"/> <property name="url" value="${database.url}"/> <property name="username" value="${database.username}"/> <property name="password" value="${database.password}"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="activeMqConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"> <property name="brokerURL" value="vm://localhost" /> </bean> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="sessionCacheSize" value="10" /> <property name="cacheProducers" value="false"/> <property name="targetConnectionFactory" ref="activeMqConnectionFactory"/> </bean> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory"/> <property name="defaultDestinationName" value="jmsQueue" /> </bean> </beans>
- jdbc-inbound.rar (1.5 MB)
- 下载次数: 119
- jdbc-inbound-jms.rar (1.5 MB)
- 下载次数: 91
发表评论
-
发现目前市面上唯一一本关于Spring 4的新书的下载地址
2014-10-29 08:56 3997magnet:?xt=urn:btih:76D615947 ... -
Spring Boot + Spring-loaded 热部署
2014-10-22 15:01 9991spring boot大大加快了目前使用sp ... -
Spring Tool Suite(STS)加速
2014-10-22 14:40 8558Java开发首选技术是Spring,使用Sp ... -
spring 学习3-Spring AOP
2013-09-21 21:42 2017Using @AspectJ-Style Annotati ... -
spring 学习2-Spring Configuration in detail
2013-09-21 20:53 38471.Bean Life-Cycle Management ... -
spring 学习1
2013-09-21 19:55 17531. Spring is lightweight= min ... -
Easy Integration Testing with Spring+Hibernate
2012-12-03 08:58 1468原文地址:http://architects.dzone.c ... -
Spring Shell 1.0 M1 发布
2012-07-19 08:58 2448亲爱的spring社区, 我很高兴的发布了S ... -
SpringSource Tool Suite 3.0.0.M1 发布
2012-05-04 15:37 2493亲爱的Spring社区, 我很高兴发布Spring ... -
SpringSource Tool Suite 2.8.0.M1 发布
2011-08-12 11:15 2082亲爱的spring社区, 我很高兴的发布下一个STS版本 ... -
SpringSource Tool Suite 2.7.0 发布
2011-07-07 12:00 2334亲爱的Spring社区, 我们很高兴的发布最新的2.7. ... -
SpringSource Tool Suite 2.7.0.M2 发布
2011-06-14 08:41 1764亲爱的Spring社区, 我很高兴发布SpringSourc ... -
SpringSource Tool Suite 2.5.2 发布
2011-01-12 10:26 3000亲爱的spring社区: 我 ... -
Spring Web Services 2.0.0.RC2 发布
2010-12-24 11:03 1635亲爱Spring 社区, 我们很高兴发布Spri ...
相关推荐
Spring Integration。 官网 Spring Integration API。 Spring Integration 开发文档。
1: Introduction to Spring Integration 2: Enterprise Integration Fundamentals Part 2 - Messaging 3: Messages and Channels 4: Message Endpoints 5: Getting Down to Business 6: Go beyond ...
spring事务与数据库操作
SpringIntegration整合SpringWS,其实Spring Integration用的WebService服务就是Spring WS的。这是两个组件的小demo,对新手入门比较有用。
springboot双数据库定时同步,可以是mysql,SqlServer
spring Integration 介绍
NULL 博文链接:https://virusfu.iteye.com/blog/1150730
Springcloud 多数库 多数据源整合,查询动态切换数据库
Spring Integration Essentials 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
工程中拿掉了两个lib,如需要加入oracle,或者sqlserver,请自行下载驱动。如不需要,在pom中删掉那两条依赖即可。
struts2 spring jpa操作数据库 级联数据 hibernate
Spring Integration Essentials 英文无水印转化版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细...
Spring Integration 中的新增功能 Spring Integration 中的新增功能
spring-integration是一个功能强大的EIP(Enterprise Integration Patterns),即企业集成模式。对,spring-integration是一个集大成者。就我自己的理解,集成了众多功能的它,是一种便捷的事件驱动消息框架用来在系统...
Spring Boot+Jpa多数据源配置Demo,可同时支持多种数据库,不同数据库,同时支持不同数据库的JdbcTemplate
spring integration 示例
Manning Pro Spring Integration