1

我们目前正在努力建立一个面向服务层的结构,持久性管理器作为最低层,服务类在顶部。持久性管理器将对实体执行所有基本操作,例如创建、更新、查找、查找所有、过滤、排序等。服务将包含实体的最小可行业务逻辑。

我们现在想要实现管理器不能访问其他管理器的规则,服务需要跨管理器执行工作。Java 类型系统及其可见性规则并未提供这一点,尽管 - private/protected 是全局有效的,不仅对其他管理器,管理器需要对其他服务可见。

所以我们认为 AOP 肯定会启用类之间的访问限制,但我们希望将规则视为编译时,而不是运行时。似乎 - 没有可能深入研究这一点 - AspectJ 提供了编译时 AOP,但这是否包括如上所述的类之间的编译时访问限制?

对此的任何暗示都将帮助我们快速决定是否要走这条路。

谢谢!

4

1 回答 1

0

您确实可以使用 AspectJ 编译时编织。看看这里这里declare warning描述的anddeclare error语句。要获得更准确的答案,包括实际的方面代码,我需要知道您的包,也许还有类命名结构。

于 2015-02-07T12:40:20.360 回答