小编art*_*emb的帖子

Spring:用于只读事务的独立数据源

感谢您阅读本文.

我有2个MySQL数据库 - 写入主,读取从属.我想象的完美场景是我的应用程序使用连接到master来进行readOnly=false事务,slave用于readOnly=true事务.

为了实现这一点,我需要提供一个有效的连接,具体取决于当前事务的类型.我的数据服务层不应该知道它使用什么类型的连接,只是直接使用注入SqlMapClient(我使用iBatis).这意味着(如果我做对了)注入的SqlMapClients应该被代理,并且应该在运行时选择委托.

public class MyDataService {

    private SqlMapClient sqlMap;

    @Autowired
    public MyDataService (SqlMapClient sqlMap) {
        this.sqlMap = sqlMap;
    }

    @Transactional(readOnly = true)
    public MyData getSomeData() {
        // an instance of sqlMap connected to slave should be used
    }

    @Transactional(readOnly = false)
    public void saveMyData(MyData myData) {
        // an instance of sqlMap connected to master should be used
    }
}
Run Code Online (Sandbox Code Playgroud)

所以问题是 - 我该怎么做?

非常感谢

java spring ibatis transactions

8
推荐指数
1
解决办法
3432
查看次数

CouchDB中的复杂动态查询

我从CouchDB开始,需要一些帮助.

我有很多数据在表中列出给用户.用户应该能够通过多个动态参数过滤该数据.

例如,假设一个表格包含字段日期,作者,标签,is_published,title.

用户应该能够指定任何过滤器,例如"包含标签'couchdb'和is_published = true"或"日期在上个月内且作者是我".

这些查询如何在CouchDB中运行?

couchdb

6
推荐指数
1
解决办法
2422
查看次数

同步两个状态机

说,我正在构建业务流程管理应用程序.它具有以下实体:问题和任务,彼此相关,作为许多任务的1个问题.任务和问题都有自己的状态,一个状态可能会影响另一个状态.

例如,它们都具有"已取消"和"已完成"状态.当我将问题的状态更改为"已取消"时,其所有任务都应变为"已取消".当我将所有任务的状态更改为"已完成"时,问题应自动变为"已完成".

假设两个实体都存在相当多的状态,并且从一个状态到另一个状态的转换逻辑以及状态的依赖性可能会发生变化,是否有任何设计模式和/或最佳实践来处理这种情况?

design-patterns state-machine

5
推荐指数
1
解决办法
1786
查看次数

如何擦除BitmapData对象中的区域?

Flex 3,ActionScript 3,Flash播放器9.

我在BitmapData对象中有一张图片.还有一系列要点.我需要擦除由点指定的多边形内部的图片部分.换句话说,绘制由点指定的多边形并用透明度填充它.

关于如何做到的任何想法?

apache-flex flash graphics actionscript bitmap

5
推荐指数
1
解决办法
4185
查看次数

如何集群和负载平衡Spring + OSGi应用程序

我正在考虑用Spring和OSGi开发一个Web应用程序.看起来他们很好地融合在一起.集群和负载均衡这样一个应用程序有哪些选择?每个应用程序的优缺点是什么?

java spring osgi load-balancing cluster-computing

5
推荐指数
1
解决办法
6468
查看次数

如何在Spring MVC中启动会话?

我需要用一些值初始化每个新的http会话.我怎么做?

我尝试在@PostConstruct中创建一个会话范围的组件并初始化会话,但是在我请求访问它们之前,不会急切地创建会话范围的bean.

java spring servlets spring-mvc

5
推荐指数
1
解决办法
2845
查看次数

如何收集与单个请求相关的jboss中的日志?

我正在开发一个在JBoss下运行的Java EE Web应用程序.

我想执行以下操作:当用户发送http请求(通过打开页面或通过AJAX)时,将收集与此请求相关的所有日志,然后将其保存到数据库中.相关的意思是他们在处理当前请求的过程中被记录.最难的部分是收集与单个请求相关的日志.

我正在研究这个解决方案:

JBoss使用log4j进行日志记录.当应用程序启动时,启动侦听器会注册一个log4j appender,它会将所有日志收集到ThreadLocal字段中.在请求处理结束时,日志将从字段中获取并保存到DB中.

但是,现在看来,log4j appender在其他线程中工作.这使得这个解决方案变得不可能.

你有什么想法,怎么做?

谢谢,Artem B.

java logging jboss log4j

3
推荐指数
1
解决办法
2246
查看次数

如何用cglib双重增强类?

这是代码:

    Patient patient = factory.createPatient();           

    Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(patient.getClass());
    enhancer.setCallback(new DefaultMethodInterceptor(patient));
    patient = (Patient) enhancer.create();

    assertThat(patient.getFirstName()).isNotNull();


    Enhancer enhancer2 = new Enhancer();
    enhancer2.setSuperclass(patient.getClass());
    enhancer2.setCallback(new DefaultMethodInterceptor(patient));
    patient = (Patient) enhancer2.create();

    assertThat(patient.getFirstName()).isNotNull();
Run Code Online (Sandbox Code Playgroud)

它失败了最后一个断言

net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.ClassFormatError: Duplicate method name&signature in class file my/package/entity/Patient$$EnhancerByCGLIB$$ca1e6685$$EnhancerByCGLIB$$f52743be
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我想增强Hibernate的实体,但有时候它会自己返回已经增强的实体,而我的第二个增强失败了.我怎么能避免这个?

hibernate cglib

3
推荐指数
1
解决办法
1557
查看次数

Flex:在形状之间绘制连接线

我正在使用Adobe Flex 3构建图表工具.我即将实现连接线,我有一个问题.

想象一下,我在画布上的随机位置有2个正方形.我需要在它们之间画一条箭头连接线.我需要它倾向于目标广场的中心,但结束于它的边界.替代文字http://i44.tinypic.com/25tw4n4.jpg

如何找出绘制线的确切点?

谢谢

apache-flex drawing connector actionscript-3

2
推荐指数
1
解决办法
9634
查看次数