1
我想在每個方法執行前檢查服務類中的用戶權限。這是我目前的做法:在注入spring bean和自定義註釋的方法的開始處做些什麼
appContext.xml:
<bean id="requestSeviceImpl" class="services.impl.RequestSeviceImpl">
<property name="permissionService" ref="permissionServiceImpl" />
...
</bean>
實現:
public class RequestServiceImpl implements RequestService
{
private PermissionService permissionService;
...
public void setPermissionService(PermissionService permissionService)
{
this.permissionService = permissionService;
}
@Override
@Transactional
public RequestResultModel submitRequest(Request request)
{
if(permissionService.isCurrentUserAuthorized(request,"submit"))
{
//submit request
}
//throw a permission exception
}
@Override
@Transactional
public void sendRequest(Request request)
{
if(permissionService.isCurrentUserAuthorized(request,"send"))
{
//send request
}
//throw a permission exception
}
...
}
我想要的是處理權限在我的自定義註釋(@Secure)檢查;它應該使用permissionService檢查權限,並在必要時拋出權限異常。而且我不想重新實例requestServiceImpl或permissionServiceImpl類(它應該使用的Spring beans):
@Override
@Transactional
@Secure(...)
public RequestResultModel submitRequest(Request request)
{
//submit request
}
我怎麼能這樣做呢?
這不是一個簡單的任務。 [您可以使用正式文檔中所述的Aspect Oriented Programming](http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/aop.html)。 –