java:使用AOP的字段更改通知

时间:2014-08-12 08:38:04

标签: java spring aop

我们有一个“特殊”字段的课程。字段类型是String,但它只能使用一组定义的值。它可以采用的值由“type”指定,每种类型都有一组定义的值。

例如,

class MyClass {
    // Special Field of "TypeA"
    String zimbra;
}

zimbra只能分配一组值 - “ValueA1,ValueA2等”

如果zimbra属于“TypeB”,则可以分配 - “ValueB1,ValueB2等”类型和值在持久性存储中配置。

我们想验证字段值分配。这可以使用Observer patternproperty field change listener来完成。但我们希望使用AOP(Spring annotations或AspectJ)来简化它。

请建议AOP是否可以作为解决方案使用。

1 个答案:

答案 0 :(得分:0)

Spring AOP有一些限制:

  • 它只能应用于由您声明方面的应用程序上下文创建的bean。特别是对new创建的对象没有用处。
  • 它主要用于实现界面的对象(并且只能拦截接口方法)
  • 如果直接代理类(通过javassist),则对象必须具有默认构造函数

AspectJ能够做到这一点,因为它比Spring AOP强大得多,但你必须处理它的编织。