De nombreux frameworks Java permettent aux membres de la classe utilisés pour l'injection d'être déclarés non publics. Par exemple, les variables injectées dans Spring et EJB 3 peuvent être privées. JPA permet aux propriétés d'une classe persistante d'être protégées ou à un paquetage privé.Méthodes/variables d'injection: public ou non?
Nous savons qu'il est préférable de déclarer les méthodes non publiques si vous le pouvez. Cela étant dit, si je ne me trompe pas, permettre à ces frameworks d'accéder à des membres non publics ne fonctionne qu'avec le gestionnaire de sécurité Java par défaut. Cela ne signifie-t-il pas que le code personnalisé peut également accéder à un membre non public via la réflexion en appelant setAccessible(), , ce qui compromettrait la sécurité?
Ce qui pose cette question: Quelle est la meilleure pratique lors de la définition du niveau d'accès pour les méthodes d'injection?
duplication possible de [Comment limiter setAccessible aux utilisations "légitimes" seulement?] (Http://stackoverflow.com/questions/2481862/how-to-limit-setaccessible-to-only-legitimate-uses) –