Статика не наследуется (хотя иногда так и кажется) и не инициализируется (повторно) для подклассов.Сделайте эти поля экземпляра (а также сделайте их protected
вместо private
, если вы хотите получить к ним доступ в подклассах):
protected final Logger log = LoggerFactory.getLogger( getClass() );
protected final Map<String, String> NameValueMap = Common.getNameValueMap();
Таким образом, каждый подкласс будет иметь экземпляр этих полей и будеттакже сможете получить к нему доступ (обратите внимание, что для создания экземпляра Logger вы теперь можете использовать getClass()
, который является методом экземпляра, и каждый подкласс предоставит свой собственный Class
объект).
Что касается@Autowired
вопрос, общий ответ таков: аннотация применяется к подклассам, если она аннотируется (мета) аннотацией @Inherited
.@Autowired
нет, насколько я знаю.