После включения @Autowrid
, проект Maven с Spring 4, приблизительно в 800 ManegedBeans Spring, 900 Services, 1000 @Component
и 1000 @Repository
, запускается из приложения OutOfMemoryError
.
Я увеличил параметры -Xms1024m -Xmx4g
в Tomcat и Wildfly, в приложение я добавил параметр default-lazy-init = "false"
в applicationContext.xml
и приложение по высокой цене. Я хотел бы знать, есть ли какое-либо преимущество в удалении
@Autowired
private AnyService anyService;
из всех классов и используйте
public void execute() {
AnyService anyService = (AnyService)applicationContext.getBean(AnyService.class);
anyService.execute();
}
в рамках методов.
Может ли использование локальной переменной вместо экземпляра оптимизировать запуск? Приносит какую-то пользу ГК? Вызов applicationContext.getBean (AnyService.class) может ухудшить производительность методов?