Можно снабдить префиксом методы и участников с одинарным или двойным подчеркиванием. Одинарное подчеркивание подразумевает, "не используйте меня, я, как предполагается, используюсь только этим классом", и двойное подчеркивание дает компилятору Python команду искажать метод/имя элемента с именем класса; пока класс и его подклассы не имеют того же имени, методы/участников можно считать "частными".
Однако решение Ваших требований до сих пор состоит в том, чтобы записать четкую документацию. Если Вы не хотите, чтобы Ваши пользователи назвали методы в неправильном порядке, то говорите так в документации.
, В конце концов, даже рядовые C++ не то, что частные. Например, думайте старый прием:
#define private public
#include <module>
В bean-компонентах, инстанцируемых Spring, вместо инициализации в конструкторе инициализируйте его в специальном методе , помеченном как «init-method» для Spring.
Эффект примерно такой же, как при инициализации в конструкторе, но вы используете правильный жизненный цикл Spring.
Вы можете сделать контекст доступным из конструктора, использующего аспектно-ориентированное программирование. Spring имеет специальную поддержку для этого - @Configurable (preConstruction = true) .
Не стесняйтесь узнать больше об этом в справочнике Spring - 6.8.1. Использование AspectJ для внедрения объектов домена с помощью Spring