activiti + spring boot

本文介绍了如何将activiti的REST接口集成到Spring Boot项目中,通过配置pom.xml文件,设置config scan扫描activiti-rest的controller,然后详细配置七大接口的数据信息,最后成功启动项目,展示activiti-rest的controller已被加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

activiti rest接口扫描进 自己spring boot 项目 (不懂的欢迎留言咨询)
pom.xml配置文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>southernfund</groupId>
	<artifactId>activiti</artifactId>
	<version>1.0</version>
	<packaging>jar</packaging>

	<!-- <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> 
		<version>1.3.5.RELEASE</version> <relativePath /> </parent> -->

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.3.5.RELEASE</version>
		<relativePath />
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>

		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<classifier>jdk15</classifier>
		</dependency>





		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.4.0</version>
		</dependency>

		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.4.0</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>


		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>


		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
		</dependency>

		<dependency>
			<groupId>org.crazycake</groupId>
			<artifactId>jdbctemplatetool</artifactId>
			<version>1.0.4-RELEASE</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
		</dependency>

		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.1.0</version>
			<!-- <version>11.2.0.4</version> -->
		</dependency>

		<!-- https://mvnrepository.com/artifact/biz.paluch.logging/logstash-gelf -->
		<dependency>
			<groupId>biz.paluch.logging</groupId>
			<artifactId>logstash-gelf</artifactId>
			<version>1.11.0</version>
		</dependency>


		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>

		<!-- <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> 
			<version>2.7.16</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> 
			<artifactId>cxf-rt-transports-http</artifactId> <version>2.7.16</version> 
			</dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> 
			<version>2.7.16</version> </dependency> -->


		<!-- https://mvnrepository.com/artifact/org.activiti/activiti-engine -->

		<!-- https://mvnrepository.com/artifact/org.activiti/activiti-diagram-rest -->
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-diagram-rest</artifactId>
			<version>5.22.0</version>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.security</groupId>
					<artifactId>spring-security-config</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework.security</groupId>
					<artifactId>spring-security-crypto</artifactId>
				</exclusion>

				<exclusion>
					<groupId>org.springframework.security</groupId>
					<artifactId>spring-security-web</artifactId>
				</exclusion>

			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-engine</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>

				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>jcl-over-slf4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>

			</exclusions>
			<version>5.22.0</version>
		</dependency>
		<!-- <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> 
			<version>5.21.0</version> </dependency> <dependency> <groupId>org.activiti</groupId> 
			<artifactId>activiti-spring-boot-starter-rest-api</artifactId> <version>5.21.0</version> 
			</dependency> -->
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-spring</artifactId>
			<version>5.22.0</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>jcl-over-slf4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-rest</artifactId>
			<version>5.22.0</version>
			<exclusions>
				<exclusion>
					<groupId>org.eclipse.jetty.orbit</groupId>
					<artifactId>javax.servlet</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-server</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-servlet</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-http</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-webapp</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-io</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-util</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-bpmn-model</artifactId> 
			<version>5.22.0</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> 
			<artifactId>activemq-client</artifactId> </dependency> -->
		<!-- <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> 
			<version>5.22.0</version> </dependency> -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.4</version>
		</dependency>
	</dependencies>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Brixton.SR5</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-netflix</artifactId>
				<version>1.1.6.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<profiles>
		<profile>
			<id>testEnv</id>
			<properties>
				<package.environment>testEnv</package.environment>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>produceEnv</id>
			<properties>
				<package.environment>produceEnv</package.environment>
			</properties>

		</profile>
	</profiles>

	<build>

		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 -->
				<excludes>
					<exclude>testEnv/*</exclude>
					<exclude>produceEnv/*</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources/${package.environment}</directory>
			</resource>
		</resources>

		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<mainClass>com.App</mainClass>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

配置config scan扫描activiti-rest 的controller 接口信息

@Configuration
@ComponentScan(basePackages = { "org.activiti.rest.diagram", "org.activiti.rest"}, includeFilters = {
		@Filter(type = FilterType.ANNOTATION, classes = {
				RestController.class }) }, useDefaultFilters = false, lazyInit = false)
public class ScanConfig {
	
}

配置数据源信息 以及要扫描注入的activiti bean

/*
 * ApplicationContext ac1 =
 * WebApplicationContextUtils.getRequiredWebApplicationContext(
 * ServletContext sc); /* ApplicationContext ac2 =
 * WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
 * /* ac1.getBean("beanId"); /* ac2.getBean("beanId");
 */
@Bean(name = "ProcessEngineConfiguration")
public ProcessEngineConfiguration getProcess(@Qualifier("flowdataDataSource") DataSource dataSource) {
	ProcessEngineConfiguration configuration = ProcessEngineConfiguration
			.createStandaloneProcessEngineConfiguration();
	configuration.setDataSource(dataSource);
	configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
	configuration.buildProcessEngine();
	configuration.setActivityFontName("宋体");
	configuration.setLabelFontName("宋体");
	return configuration;
}

@Bean(name = "restResponseFactory")
public RestResponseFactory restResponseFactory() {
	return new RestResponseFactory();
}

@Bean(name = "contentTypeResolver")
public ContentTypeResolver contentTypeResolver() {
	return new DefaultContentTypeResolver();
}

@Bean(name = "processEngineConfiguration")
public ProcessEngineConfiguration processEngineConfiguration() {
	return processEngineConfiguration;
}

接下来配置七大接口数据信息


@Configuration
public class ActivitiServiceConfig {

	@Bean
	public StandaloneProcessEngineConfiguration getStandaloneProcessEngineConfiguration() {
		StandaloneProcessEngineConfiguration standaloneProcessEngineConfiguration = new StandaloneProcessEngineConfiguration();
		return standaloneProcessEngineConfiguration;
	}
	@Bean(name = "processEngine") // processEngineConfiguration
	public ProcessEngine getProsessEngien(@Qualifier("ProcessEngineConfiguration") ProcessEngineConfiguration pro) {
		return pro.buildProcessEngine();
	}

	@Bean(name = "RepositoryService")
	public RepositoryService getRepositoryService(@Qualifier("processEngine") ProcessEngine ProcessEngine) {
		return ProcessEngine.getRepositoryService();
	}

	@Bean(name = "RuntimeService")
	public RuntimeService getRuntimeService(@Qualifier("processEngine") ProcessEngine ProcessEngine) {
		return ProcessEngine.getRuntimeService();
	}

	@Bean(name = "TaskService")
	public TaskService getTaskService(@Qualifier("processEngine") ProcessEngine ProcessEngine) {
		return ProcessEngine.getTaskService();
	}

	@Bean(name = "FormService")
	public FormService getFormService(@Qualifier("processEngine") ProcessEngine ProcessEngine) {
		return ProcessEngine.getFormService();
	}

	@Bean(name = "HistoryService")
	public HistoryService getHistoryService(@Qualifier("processEngine") ProcessEngine ProcessEngine) {
		return ProcessEngine.getHistoryService();
	}

	@Bean(name = "ManagementService")
	public ManagementService getManagementService(@Qualifier("processEngine") ProcessEngine ProcessEngine) {
		return ProcessEngine.getManagementService();
	}

	@Bean(name = "IdentityService")
	public IdentityService getIdentityService(@Qualifier("processEngine") ProcessEngine ProcessEngine) {
		return ProcessEngine.getIdentityService();
	}
}

启动项目

package com;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
//import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Spring demos created by Guo Qingtao 2016-09-01
 */

@EnableHystrixDashboard
@EnableCircuitBreaker
// @EnableEurekaClient
//@EnableAutoConfiguration
@EnableDiscoveryClient
@RestController
@SpringBootApplication
@EnableTransactionManagement
// @EnableScheduling
@EnableAutoConfiguration(exclude = { org.activiti.rest.security.BasicAuthenticationProvider.class,
		org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class,
		org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration.class,
		org.activiti.rest.security.BasicAuthenticationProvider.class })
/*
 * @ComponentScan(basePackages = { "org.activiti.rest.diagram",
 * "org.activiti.rest" }, includeFilters = {
 * 
 * @Filter(type = FilterType.ANNOTATION, classes = { RestController.class }) },
 * useDefaultFilters = false, lazyInit = false)
 */
// <mvc:annotation-driven />
public class App {// implements CommandLineRunner {

	@RequestMapping("/")
	public String index() {
		return "hello world at home!";
	}
	public static void main(String[] args) {
		// SpringApplication.run(App.class, args);
		new SpringApplicationBuilder(App.class).web(true).run(args);
	}
}

启动项目截图 我们发现activiti-rest 的controller 已经加载进来了
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值