Drools集成CDI(一)

简介: Drools集成CDI(一)

Drools对CDI进行了很好的集成,本节课带大家先了解一下CDI的基本使用,在下一节课中再讲解如何在Drools中应用CDI。


CDI简介

CDI(Contexts and Dependency Injection 上下文依赖注入),是JAVA官方提供的依赖注入实现。


@Inject是JSR330规范实现的,与spring中的@Autowired基本一样,但没有request属性。


可参看文档及管网:


Weld官网:http://weld.cdi-spec.org/

CDI文档:http://docs.jboss.org/cdi/tck/reference/latest/en-US/html/

CDI最新版本说明:http://www.cdi-spec.org/news/

CDI的基本使用

Maven依赖

创建Maven项目,引入以下依赖:


<!--CDI依赖开始-->
<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>2.0</version>
</dependency>
<dependency>
    <groupId>org.jboss.weld.se</groupId>
    <artifactId>weld-se-core</artifactId>
    <version>3.0.0.Final</version>
</dependency>
<!--CDI依赖结束-->

其中cdi-api在jdk1.6已经纳入j2ee中。weld-se-core是对cdi-api的封装实现。

配置文件

在resources下面的META-INF目录下添加beans.xml配置文件,配置文件中的具体配置可参看官方文档。以下示例内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd">
</beans>

具体实现

先创建一个服务类,DemoService,并提供一个打印的方法:

/**
 * @author zzs
 */
public class DemoService {
  public void print(){
    System.out.println("Hello Drools!");
  }
}

创建调用类Chapter3并进行调用:

/**
 * @author zzs
 */
public class Chapter3 {
  private final DemoService demoService;
  @Inject
  public Chapter3(DemoService demoService) {
    this.demoService = demoService;
  }
  private void print() {
    this.demoService.print();
  }
  public static void main(String[] args) {
    SeContainer seContainer = null;
    try {
      seContainer = SeContainerInitializer.newInstance().initialize();
      Chapter3 chapter3 = seContainer.select(Chapter3.class).get();
      chapter3.print();
    } finally {
      if (seContainer != null && seContainer.isRunning()) {
        seContainer.close();
      }
    }
  }
}

执行main方法,控制台打印“Hello Drools”,即可看到整个过程的实现。这里需要注意的是在构造方法上使用了@Inject,@Inject和我们平时在Spring中使用的@Autowired用法一致。


关于此技术点,以录制成视频,发布于《Drools7规则引擎进阶教程》中,详情可免费查看。


原文链接:https://www.choupangxia.com/topic/detail/90


相关技术视频

CSDN学院:《Drools7规则引擎进阶教程》


CSDN学院:《Drools7规则引擎入门教程》


CSDN学院:《Drools7系列优惠套餐》


目录
相关文章
|
安全 Java 数据库连接
工作流容器化的依赖注入!Activiti集成CDI实现工作流的可配置性和可扩展性
本篇文章介绍了工作流集成CDI实现工作流的可配置性和可扩展性。详细说明的CDI的基本设置来配置流程引擎并发布流程。通过基于CDI的流程的执行,实现与流程实例的交互,声明式流程控制,在流程中使用Bean,注入流程变量和接收流程事件的功能。通过这篇文章学习,可以学会Activiti的使用进阶。
322 0
工作流容器化的依赖注入!Activiti集成CDI实现工作流的可配置性和可扩展性
Drools集成CDI(二)
Drools集成CDI(二)
142 0
|
3月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
190 6
|
3月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
217 4
|
3月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
172 1
|
4月前
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
125 2
|
4月前
|
消息中间件 Java Kafka
集成Kafka到Spring Boot项目中的步骤和配置
集成Kafka到Spring Boot项目中的步骤和配置
162 7
|
4月前
|
druid Java 关系型数据库
在Spring Boot中集成Druid实现多数据源有两种常用的方式:使用Spring Boot的自动配置和手动配置。
在Spring Boot中集成Druid实现多数据源有两种常用的方式:使用Spring Boot的自动配置和手动配置。
451 5
|
4月前
|
监控 前端开发 Java
五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
|
3月前
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka Streams的集成
Spring Boot与Apache Kafka Streams的集成
下一篇
无影云桌面