springboot+activiti+jpa+mysql+bootstrap整合实例

前面几篇介绍了些activiti的基础知识,这篇打算讲讲整合时需要注意的问题

提醒:该篇文章中使用的整合代码,已上传到GitHub,源码和文章会略有不同,文章偏旧可以参照
https://github.com/jianiter/springboot-jpa-activiti-bootstrap

先上张项目结构的整图,如下:


springboot+activiti+jpa+mysql+bootstrap整合实例_第1张图片
image.png

首先,还是要配置pom.xml:

   
        UTF-8
        UTF-8
        1.8
        5.19.0.2
    

    
        org.springframework.boot
        spring-boot-starter-data-redis
    
    
        org.springframework.boot
        spring-boot-starter-thymeleaf
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.kafka
        spring-kafka
    

    
    
        mysql
        mysql-connector-java
        runtime
    



    
    
        org.springframework.boot
        spring-boot-starter-data-jpa
    

    
        org.springframework.boot
        spring-boot-starter-security
    

    
        org.springframework.security
        spring-security-config
        4.1.3.RELEASE
    

    
    
        io.rest-assured
        rest-assured
        3.0.0
        test
    

    
        org.hamcrest
        hamcrest-all
        1.3
    

    
    
        log4j
        log4j
        1.2.17
    

    
        org.slf4j
        slf4j-log4j12
        1.7.12
    

    
    
        org.activiti
        activiti-spring-boot-starter-basic
        ${activiti.version}
    

    
        org.activiti
        activiti-spring-boot-starter-rest-api
        
        ${activiti.version}
    
    
        org.activiti
        activiti-spring-boot-starter-actuator
        ${activiti.version}
    
    
        org.activiti
        activiti-spring-boot-starter-jpa
        ${activiti.version}
    

    

    
        org.springframework.boot
        spring-boot-starter-test
        test
    

    
        org.subethamail
        subethasmtp-wiser
        1.2
        test
        
            
                javax.servlet
                servlet-api
            
        
    


修改application.properties配置:

#thymeleaf的配置
spring.thymeleaf.cache=false
spring.thymeleaf.enabled=true
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5

spring.application.name=Bootstrap Spring Boot
#mysql数据源的配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/activiti_demo
spring.datasource.username=admin
spring.datasource.password=123
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

# hibernate 配置
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
#spring.jpa.hibernate.ddl-auto=update #可以切换不同的方式
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
#大小写转换问题
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

server.port=8080
server.tomcat.uri-encoding=UTF-8

接下来,添加如下文件:


springboot+activiti+jpa+mysql+bootstrap整合实例_第2张图片
image.png

jpa在自定义SQL查询时,可以使用注解,如果有复杂SQL,可以使用native方式,配置在xml文件里,如下:


springboot+activiti+jpa+mysql+bootstrap整合实例_第3张图片
image.png

orm.xml文件里的SQL定义,举例如下
这里需要留意命名和参数的写法:




    
        
            
        
    


创建User.java
这里使用注解的方式,参照数据库的建表语句即可


springboot+activiti+jpa+mysql+bootstrap整合实例_第4张图片
image.png

创建UserRepository.java:
这里继承了JpaRepository,可以根据业务自行选择其他的类
需要留意的问题是,定义方法时的命名
这里的nativeQuery在orm.xml中有定义


springboot+activiti+jpa+mysql+bootstrap整合实例_第5张图片
image.png

创建IUserService.java:


springboot+activiti+jpa+mysql+bootstrap整合实例_第6张图片
image.png

创建UserServiceImpl.java
需要留意的问题是,activiti在执行task时,service注解需要指明


springboot+activiti+jpa+mysql+bootstrap整合实例_第7张图片
image.png

创建controller,这里创建两个做demo:


springboot+activiti+jpa+mysql+bootstrap整合实例_第8张图片
image.png

创建HomeController,做页面跳转:


springboot+activiti+jpa+mysql+bootstrap整合实例_第9张图片
image.png

创建AdminController.java,做json请求回传:


springboot+activiti+jpa+mysql+bootstrap整合实例_第10张图片
image.png

修改AdminApplication.java,做注解和初始化:


springboot+activiti+jpa+mysql+bootstrap整合实例_第11张图片
image.png

修改SecurityConfig.java:


springboot+activiti+jpa+mysql+bootstrap整合实例_第12张图片
image.png

做完上面这些配置,可以在test中执行,查看效果了

接下来,还需要配置前端页面资源


springboot+activiti+jpa+mysql+bootstrap整合实例_第13张图片
image.png

processes中存放activiti的流程图,bpmn,png,xml这些文件放在这里加载

static中存放css,js,images这些资源文件
templates中存放模板页面,这里使用html


springboot+activiti+jpa+mysql+bootstrap整合实例_第14张图片
image.png

创建login.html
需要留意加载资源文件的标签语法


springboot+activiti+jpa+mysql+bootstrap整合实例_第15张图片
image.png

请求一个接口得到结果显示,如下:


springboot+activiti+jpa+mysql+bootstrap整合实例_第16张图片
image.png

你可能感兴趣的:(springboot+activiti+jpa+mysql+bootstrap整合实例)