Guice MethodInterceptor によって返されるべき答えを見つけようとしています。methodInvocation.proceed(); を返すことの違いは何ですか? null を返します。
これが私の状況です。場合によっては、ユーザーは一部のメソッドを呼び出す権利を持っています。このような状況を guice aop を使用して実装したいと考えています。
メソッドを呼び出したくない場合、何を返す必要がありますか? null を返すことと他のオブジェクトを返すことの違いは何ですか。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AOPEstablisher{
}
class GuiceModule extends AbstractModule{
@Override
protected void configure() {
GuiceExampleAop guiceExampleAop = new GuiceExampleAop ();
requestInjection(guiceExampleAop);
bindInterceptor(Matchers.any(), Matchers.annotatedWith(AOPEstablisher.class), guiceExampleAop );
}
}
class CommandExecutor{
@AOPEstablisher
public void executeInSomeCases(){
//I want to execute this command in some cases
}
}
インターセプタークラスは次のとおりです。
import org.aopalliance.intercept.MethodInterceptor;
public class GuiceExampleAop implements MethodInterceptor {
@Inject
User user;
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
if(user.hasRigths(){
return methodInvocation.proceed();
else{
return null?
return methodInvocation?
//what should be returned here?
// what is difference between returning methodInvocation and null
}
}
}
ご協力いただきありがとうございます。