Итак, у меня есть что-то вроде следующего:
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 проверить авторизацию, а затем создать транзакцию, если пользователь авторизован?
Я потратил много времени на поиски ответа и не смог ничего найти.