Я создал пользовательскую аннотацию для регистрации, следуя примеру в этом сообщении в блоге почти точно.Основное отличие, которое я вижу, состоит в том, что мой LoggerInjector
помечен @Component
.
. Аннотация отлично работает, и я получаю ненулевой экземпляр Logger везде, кроме одного случая: когда я пытаюсь войти в системуметод, аннотированный @Autowired
.
Например:
@Repository
public class MyDao
{
@AutowiredLogger
private Logger _logger;
private JdbcTemplate _jt;
@Autowired
public void setDatasource(DataSource ds)
{
_logger.debug("Entering setDs")
_jt = new JdbcTemplate(ds);
_logger.debut("Exiting setDs);
}
}
A NullPointerException
выбрасывается в первую строку _logger.debug()
.
Фрагмент из applicationContext.xml:
<mvc:annotation-driven />
<context:component-scan base-package="my.package" />
Фрагмент из dispatch-servlet.xml:
<mvc:annotation-driven />
<context:component-scan base-package="my.package">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Repository" />
</context:component-scan>
Как мне сделать инъекцию @AutowiredLogger
до запуска методов @Autowired
?