Теперь настоящую причину (если она существует) трудно сказать, не попадая в головы разработчиков Spring, и потому что это было реализовано довольно давно.
Я бы предположил, что это было упущением, поскольку нет существенного преимущества в использовании частных методов в качестве целей для сопоставления запросов.Конечно, вы больше не можете вызывать их из своего другого кода, но если вы вызываете методы контроллера из своего кода, вы заслуживаете всех проблем, которые у вас возникают.
Эта ссылка описываетИнтересная ситуация, когда отображение запроса работает для закрытого метода пакета, но поскольку AOP работает только для открытых методов, результатом является путаница и разрушение.Также предоставлено 4 (четыре!) Места, где можно применить исправление, чтобы не закрытые методы не становились мишенями @RequestMapping
.
Так что я бы отнес это к (незначительной) ошибке.Теперь программисты должны оставаться на своих местах и не забывать обнародовать эти методы.Я посмотрю, смогу ли я найти для этого существующую заявку на ошибку.