sto creando un fagiolo dinamica utilizzando "AutowireCapableBeanFactory" come segueCome abilitare la cache per un metodo all'interno di fagioli dinamica
RegisterFoo.java
@Configuration
public class registerFoo {
@Autowired
ApplicationContext appcontext;
AutowireCapableBeanFactory bf;
@PostConstruct
public void registerFoo() {
bf = appContext.getAutowireCapableBeanFactory();
RootBeanDefinition def = new RootBeanDefinition(Foo.class);
((DefaultListableBeanFactory)bf).registerBean("foo", def);
}
}
RegisterBar.java
@Configuration
public class registerBar {
@Autowired
ApplicationContext appcontext;
AutowireCapableBeanFactory bf;
@PostConstruct
public void registerFoo() {
bf = appContext.getAutowireCapableBeanFactory();
RootBeanDefinition def = new RootBeanDefinition(Bar.class);
Foo foo = (Foo) appContext.getBean("foo");
ConstructorArgumentValues cav = new ConstructorArgumentValues();
cav.add(0, foo.getValue());
def.setArgumentValues(cav);
((DefaultListableBeanFactory)bf).registerBean("bar", def);
}
}
Foo.class
Il metodo getValue() esegue il suo corpo ogni volta. Spring non memorizza il valore nella cache come previsto. Eventuali suggerimenti?
Qualsiasi input qui è davvero apprezzato. – sag
Ci sono altri posti nell'applicazione in cui la cache funziona? Tranne il bean dinamico? – Patrick
@Patrick - Sì, funziona per i fagioli normali. i fagioli creati usando l'annotazione '' '@ Bean'''. – sag