javascript
Spicy Spring:动态创建自己的BeanDefinition
當我們有一個Spring托管的應用程序時,我們想讓Spring管理所有的bean。 除了使用已知解決方案(例如帶注釋的bean,Java配置和XML配置)創建bean的常規方法之外,還有一種方法可以用來創建自己的BeanDefinition 。
使用BeanDefinitionRegistryPostProcessor可以創建一個特定的后處理器,該處理器可以將BeanDefinition添加到BeanDefinitionRegistry 。
它不同于BeanPostProcessor ,其中只有掛鉤豆初始化(建設你的POJO的),其中BeanDefinitionRegistryPostProcessor對鉤BeanDefinitionRegistry 。 這使我們能夠定義自己的BeanDefinition 。
首先,我們創建示例中列出的BeanDefinitionRegistryPostProcessor實現。 我們實現了所需的方法,并將能夠將我們自己的bean定義添加到注冊表中。 定義的BeanDefinition將由ApplicationContext拾取,并將構造POJO。 我們的結果是一個Spring托管的bean
package com.jdriven;import org.springframework.beans.BeansException; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.stereotype.Component;@Component public class LogicServiceRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {@Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)throws BeansException {RootBeanDefinition beanDefinition = new RootBeanDefinition(MyServiceImpl.class); //The service implementationserviceDefinition.setTargetType(MyService.class); //The service interfaceserviceDefinition.setRole(BeanDefinition.ROLE_APPLICATION);registry.registerBeanDefinition("myBeanName", beanDefinition );} }翻譯自: https://www.javacodegeeks.com/2015/04/spicy-spring-dynamically-create-your-own-beandefinition.html
總結
以上是生活随笔為你收集整理的Spicy Spring:动态创建自己的BeanDefinition的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么启动联网快捷键设置(联网的快捷键)
- 下一篇: iphonedns设置(iphonedn