Многие платформы Java позволяют объявлять члены класса, используемые для внедрения, закрытыми. Например, внедренные переменные в Spring и EJB 3 могут быть закрытыми. JPA позволяет защитить свойства персистентного класса или пакетно-приватные.
Мы знаем, что лучше объявить методы закрытыми, если вы можете. При этом, если я не ошибаюсь, предоставление этим структурам доступа к закрытым членам работает только с менеджером безопасности Java по умолчанию. Не означает ли это, что пользовательский код может также получить доступ к непубличному члену с помощью отражения, вызвав setAccessible (), , что поставит под угрозу безопасность ?
Что вызывает этот вопрос: какова наилучшая практика при настройке уровня доступа для методов инъекции?