Я устанавливаю bean-компонент во время запуска приложения весенней загрузки.Я пытаюсь обновить компонент, используя конечную точку отдыха.Конечная точка в контроллере вызывает updatePoints () .Когда я получаю данные, используя точку GET, у нее все еще остаются только данные, которые были созданы во время запуска.В бине нет обновленных данных.
@Component
public class DynamicEntry{
private Map<String, DynamicPoint> dynamicPoints = new HashMap<>();
private DefaultListableBeanFactory beanFactory;
@Autowired
public DynamicEntry(DefaultListableBeanFactory beanFactory){
this.beanFactory = beanFactory;
}
@PostConstruct
void loadPoints(){
//load the dynamicPoints after the spring boots up
}
void updatePoints(String point){
try {
if (!dynamicPoints.containsKey(point)) {
DynamicPoint dynamicPoint = new DynamicPoint(point);
beanFactory.registerSingleton(point, dynamicPoint);
dynamicPoints(point, dynamicPoint);
}
} catch (Exception | Error e) {
e.printStackTrace();
}
}
@Bean
public Map<String, DynamicPoint> dynamicPoints() {
return dynamicPoints;
}
}