获取domain对象方法

我们的系统采用SSH架构,现根据需求需要这样处理,系统初始化后获取系统所有domain对象,然后根据业务要求记录操作。我想问问,在系统中如何获取所有domain对象?

你说SSH框架可是Spring Struts Hibernate?如果是的话,办法还是很多的。

你的需求:“根据业务要求记录domain的操作”,如果我分析不差,这个使用Aop织入可以满足的你的要求,正好有一段代码供你参考:
[b]DomainA.java[/b]
[code="java"]
package aop;

public class DomainA {
public void action() {
System.out.println("DomainA action.");
}
}[/code]
[b]ActionAop.java[/b]
[code="java"]package aop;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class ActionAop {

@Pointcut("execution(* org.koala.orm.aop.*.*(..))")
public void action() {
}

@After("action()")
public void actionAopAfter() {
    System.out.println("#############After##########");
}

@Before("action()")
public void actionAopBefore() {
    System.out.println("#############Before##########");
}

}
[/code]
首先,你要确认aspectjweaver.jar和aspectjrt.jar在的classpath中,可以参考[url]http://www.eclipse.org/aspectj/[/url]可以使用aspectj提供的编译工具,也可以将aspectj集成在ant或者maven中使用,网上的范例有很多。

测试代码:
[b]DomainAopTest.java[/b]
[code="java"]package aop;

import org.koala.orm.aop.DomainA;
import org.testng.annotations.Test;

public class DomainAopTest {
@Test
public void testSay() {
DomainA a = new DomainA();
a.action();
}
}
[/code]
最终的结果演示,就可以处理你Domain的业务动作了:
[code="txt"]#############Before##########
DomainA action.
#############After##########[/code]

[url]http://msdn.microsoft.com/zh-cn/library/x4ckfds0(v=VS.80).aspx[/url]

希望有所帮助!

你说的domain是指domain classes吗,比如com.foo.Post, com.foo.User这些类?

如果用的是grails,可以
[code="groovy"]
def domainArtefacts = grailsApplication.getArtefacts('Domain')
[/code]
否则,可以考虑用Java反射