Sim*_*eon 8 java aop coding-style spring-aop
有点长的头衔,但这通常是个问题.
我想知道您是否认为执行以下操作是个好主意.
代替:
public void buyItem(int itemId, int buyerId) {
if (itemId <= 0) {
throw new IlleglArgumentException("itemId must be positive");
}
if (buyerId <= 0) {
throw new IlleglArgumentException("buyerId must be positive");
}
// buy logic
}
Run Code Online (Sandbox Code Playgroud)
我希望有类似的东西:
@Defensive("isPositive(#itemId, #buyerId)")
public void buyItem(int itemId, int buyerId) {
// buy logic
}
Run Code Online (Sandbox Code Playgroud)
你认为这是好/可怕/太花哨/太慢?如果你真的认为它很好我想用SpEL来实现它,那么有没有人有更好/更轻/更快的东西?
谢谢,
这不一定是坏事,但是您的简单情况可以通过异常语句(而不是我最初提到的断言)很好地解决。
看来您正在引入自己的一组注释,项目中的其他开发人员必须接受并适应它们。然而,一旦引入注释,常规Proxy方法似乎是解决该问题的更好选择。
总结:您所描述的问题可以使用标准java替代方案轻松解决,尽管在更复杂的情况下它可能是合理的(例如,考虑@Secured在spring-security中),特别是如果您正在开发自己的框架。