Ana fasülye fabrikam var ve fasülyede fasülye fasülyesi işlemek için BeanPost Processor'u tercih ediyorum. AFAIK, bu Baharda desteklenmiyor. Benim alternatiflerim neler? (her işlemin XML'sinde post işlemcisini bildirmek için tabii ki hariç)Ana fasulyesi fabrikalarında fasülye fabrikasında fasülye işlemcileri almak için
5
A
cevap
0
Bir "çözüm", üst yazı işleyicilerini yürüten alt bağlama için bir fasulye son işlemci eklenmesidir. Bu, kullandığımız tekniktir. Potansiyel olarak tehlikeli ve en iyi Bahar pratiği IMO değil.
/**
* A {@linkplain BeanPostProcessor} that references the BeanPostProcessors in the parent context and applies them
* to context this post processor is a part of. Any BeanPostProcessors from the parent that are {@link BeanFactoryAware} will
* have the {@linkplain BeanFactory} from the child context set on them during the post processing. This is necessary to let such post processors
* have access to the entire context.
*/
public class ParentContextBeanPostProcessor implements BeanPostProcessor {
private final Collection<BeanPostProcessor> parentProcessors;
private final BeanFactory beanFactory;
private final BeanFactory parentBeanFactory;
/**
* @param parent the parent context
* @param beanFactory the beanFactory associated with this post processor's context
*/
public ParentContextBeanPostProcessor(ConfigurableApplicationContext parent, BeanFactory beanFactory) {
this.parentProcessors = parent.getBeansOfType(BeanPostProcessor.class).values();
this.beanFactory = beanFactory;
this.parentBeanFactory = parent.getBeanFactory();
}
/** {@inheritDoc} */
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
for (BeanPostProcessor processor : parentProcessors) {
if (processor instanceof BeanFactoryAware) {
((BeanFactoryAware) processor).setBeanFactory(beanFactory);
}
try {
bean = processor.postProcessBeforeInitialization(bean, beanName);
} finally {
if (processor instanceof BeanFactoryAware) {
((BeanFactoryAware) processor).setBeanFactory(parentBeanFactory);
}
}
}
return bean;
}
/** {@inheritDoc} */
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
for (BeanPostProcessor processor : parentProcessors) {
if (processor instanceof BeanFactoryAware) {
((BeanFactoryAware) processor).setBeanFactory(beanFactory);
}
try {
bean = processor.postProcessAfterInitialization(bean, beanName);
} finally {
if (processor instanceof BeanFactoryAware) {
((BeanFactoryAware) processor).setBeanFactory(parentBeanFactory);
}
}
}
return bean;
}
}
İlgili konular
- 1. Yay 3 fasülye somutlaştırma dizisi
- 2. 2 fasülye aynı fakat farklı paketle, nasıl otomatik telef?
- 3. 3-1 Baharında argüman çözümleyici olarak fasülye referansını nasıl belirlerim?
- 4. Bir değerin fasülye iddialarında negatif bir sayı olmadığını nasıl kontrol edebilirim?
- 5. JSON Angular fabrikasında değişken olarak
- 6. İlkbaharda, ana fasulyede çocuk fasulyesi nasıl enjekte edebilirim?
- 7. xsd'den dinamik java fasulyesi
- 8. Özel Sprockets işlemcileri oluşturmak için belgeler
- 9. EntityManager, DAO Fabrikalarında nasıl düzgün çalışır?
- 10. Sayım İşlemcileri Windows altında C++ kullanarak
- 11. Jenkins: Bu grup için grup işleri ve limit oluşturma işlemcileri
- 12. Seçilen stilde ataç çalıştırma işlemcileri
- 13. Bahar teşvik talebi çocuk için iş parçacığı fasulyesi (HttpServletRequest)
- 14. Ana bilgisayar sunucusunun adını almak için Django nasıl kullanılır?
- 15. Celery AsyncResult ana makine adı almak
- 16. Modelformset fabrikasında özel bir form mu kullanıyorsunuz?
- 17. dize türü tek satırlık yay fasulyesi beyanı
- 18. bağlamda kayıtlı hiçbir fasulye çözümleyici fasulyesi
- 19. Django - şablon içerik işlemcileri - uygulamamı kırıyor
- 20. oturum kapsamı scoped mülk kapsamı JSF fasulyesi
- 21. Maven ile birlikte leksok ve JPAMetalModel işlemcileri
- 22. nasıl seçilecek almak için endeks #
- 23. sonra Shopify ana menü karşılaştırmak için kolu almak için koleksiyonun linklist alınıyor
- 24. Home düğmesine Ben kullanıcılar için ANA düğmesinin kontrol altına almak için hasta danışma olduğunu biliyoruz
- 25. Yay uygulamasında servlet filtrelerinde fasülyeyi nasıl fileye almak için?
- 26. Tablo ayrıntılarını almak için
- 27. biçimini almak için: java
- 28. SQLFORM fabrikasında, neden okunduğum onay kutusunun işareti kaldırılmıyor?
- 29. Bir OrientDB ana düğümü güncel olduğunda bildirim almak mümkün mü?
- 30. IntelliJ'teki bir arabirimden java fasulyesi sınıfı nasıl oluşturulur?
Ebeveyn-çocuk bağlamlarında daha fazla koruma kullanımı dışında, farkında olduğum başka alternatifler yoktur. – skaffman