我正在手动创建一个Logger对象,并且Spring没有按预期初始化UserService。我如何强制Spring初始化UserService?如何在没有自动装配的情况下初始化Spring服务?
我试过下面的代码,但它没有初始化;
WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
userService = context.getBean(UserService.class);
这里是JobService;
@Service
public class JobService{
private static final Logger logger = LoggerFactory.getLogger(JobService.class);
doJob(){
logger.info("Job is starting...");
.....
}
}
My LoggerFactory;
public class LoggerFactory {
public static Logger getLogger(Class clazz) {
Logger logger = new Logger(clazz);
return logger;
}
private LoggerFactory() {
throw new UnsupportedOperationException("Not instantiable");
}
}
而我的记录器;
public class Logger {
@Autowired
UserService userService;
public void info(String message){
User user = userService.getCurrentUser(); //userService is null
}
}
我无法获取用户信息并将其传递到记录器,因为我需要为所有项目添加用户信息(我有成千上万的类)没有任何解决方法初始化UserService的方法? – hellzone
听起来像一个可怕的设计。成千上万的?我对此表示怀疑。 – duffymo