Итак, у меня есть что-то вроде следующего:
public interface MyService {
@PreAuthorize("hasPermission(T(Name).OBJ, T(Action).GET)")
MyObj getObj(String id);
}
@Service
public class MyServiceImpl implements MyService {
@Override
@Transactional
public MyObj getObj(String id){
return dao.get(id);
}
}
@Controller
public class MyController {
@Resource(name="myServiceImpl")
private MyService service;
public MyObj getObj(String id){
return service.getObj(id);
}
}
Когда вызывается метод getObj(id)
, все сначала завершается транзакцией, затем проверяется авторизация. Возможно ли сохранить эту конфигурацию и сначала получить Spring для проверки авторизации, а затем создать транзакцию, если пользователь авторизован?
Я потратил немало усилий на поиск ответа и ничего не нашел.