Jdon框架与Spring框架整合

  Jdon框架虽然借助了和Spring框架一样的IOC容器PicoContainer,但是两者并不矛盾,可以在Spring应用中无缝使用Jdon框架。
  只要在Spring中编写一个启动类,在Spring启动时,将Jdon和Spring两个框架中组件彼此需要依赖的地方互相注入一下,就可以相互使用对方容器中的类或Bean了。 这个启动类主要使用Spring框架三个Hook类:
1. org.springframework.context.ApplicationContextAware:
它的setApplicationContext 方法将在Spring启动之前第一个被调用。我们用来同时启动Jdon框架。

2.org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor
它的postProcessBeanDefinitionRegistry 和 postProcessBeanFactory 方法是第二和第三被调用,它们在Bean初始化创建之前启动,如果Spring的bean需要的Jdon中的组件,我们在这里将其注入给Spring。比如SpringMVC的REST controller如下UserController中需要Jdon框架的RoleAssigner:


@Controller
@RequestMapping(value = "/contact")
public class UserController {

  @Autowired
  private UserRepository userRepository;

  @Autowired  //需要Jdon框架的
  private RoleAssigner roleAssigner;

}

 

3. org.springframework.context.ApplicationListener
当Spring所有XML或元注解的Bean都启动被创建成功了,也就是Spring准备工作都做好了准备就绪了,这时我们将Spring创建好的Bean实例注入到Jdon框架中。 例如,Jdon框架的@Consumer中需要使用Spring的JdbcTemp模板操作数据库:

@Consumer("saveUser") // 这是 Jdon框架
public class UserSaveListener implements DomainEventHandler {

  @Autowired //这是Spring框架
  private UserRepository simpleJdbc;

  public void onEvent(EventDisruptor event, boolean endOfBatch) throws Exception {...}
      …}

 

AppContextJdon.java 完整代码下载到你的Spring项目后,在spring XML配置:
<bean id="appContextJdon" class="com.jdon.spring.AppContextJdon"></bean>

完整SpringMVC+Jdon案例源码下载

无Spring等依赖包的干净代码快速下载

Spring 3下如何实现DCI, Domain Events?