Я пытаюсь использовать Spring, чтобы ввести логгер SLF4J в класс следующим образом:
@Component
public class Example {
private final Logger logger;
@Autowired
public Example(final Logger logger) {
this.logger = logger;
}
}
Я нашел класс FactoryBean
, который я реализовал. Но проблема в том, что я не могу получить информацию о цели инъекции:
public class LoggingFactoryBean implements FactoryBean<Logger> {
@Override
public Class<?> getObjectType() {
return Logger.class;
}
@Override
public boolean isSingleton() {
return false;
}
@Override
public Logger getObject() throws Exception {
return LoggerFactory.getLogger(/* how do I get a hold of the target class (Example.class) here? */);
}
}
Есть ли FactoryBean даже правильный путь? При использовании picocontainers factory injection вы получаете переданный объект Type
. В виде это немного сложнее. Но как вы это делаете в Spring?