思路:直接在原工程改,风险大而且费时,所以选择建个新的springboot工程,把原工程文件挪过来。【activiti版本是5.22】
- 首先创建springboot工程,这儿就在不赘述了,网上很多建springboot的文章,按步骤来做就好,主类不要放在java下面,新建包放在包的顶层即可,不然会提示
Spring Boot Application in default package
建好后新建webapp目录,具体参考:springboot工程创建webapp目录
- 建好之后,把java类直接挪过来,配置文件放在resources下面,楼主天真的以为jsp页面(也就是activiti设计器)放在static或者public等这种springboot用来放静态资源的路径下就可以,可是怎么都不行,jsp必须在webapp下面,保持同springmvc一样结构。
- 主类排除掉spring Security,如下图:
- 加视图解析器,两种方式,代码与配置文件
@Configuration
public class ViewResolverConfig extends WebMvcConfigurerAdapter {
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
/**
* 配置视图解析器
*
* @return
*/
@Bean
public InternalResourceViewResolver configureInternalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setOrder(0);
resolver.setContentType("text/html;charset=UTF-8");
return resolver;
}
或者
spring.mvc.view.prefix=/views/
spring.mvc.view.suffix=.jsp
- pom中加入依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
springboot内置的tomcat不行,真不知道为什么,感觉和activiti版本太低有关
6. 扫描activiti自带的service,springboot是从启动类所在包开始,扫描当前包及其子包下的所有文件,不包含jar中,所以要单独扫描。
7. 继承SpringBootServletInitializer
具体原因参考:SpringBootServletInitializer
7. 如果你的项目没有jsp,只是纯html,那就不用这么费劲了,把静态文件放在resources下面就行了,然后指定静态文件路径和解析路径,如下:
@Configuration
public abstract class StaticResourceConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
}
}
或者
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/static/
static-path-pattern的意思是静态资源怎么去访问,static-locations的意思是你的静态资源放在哪,假如在static下有个a.png,可以这样访问:http://localhost:8080/项目的ContextPath/a.png
9. 期间还遇到了很多冲突和版本问题,可适当降低或者升高jar的版本就能解决,比如
java.lang.NoClassDefFoundError: org/hibernate/boot/model/naming/PhysicalNamingStrategy
这是因为hibernatete版本太低了。
10. 有什么疑问可以留言哈。
转载:https://blog.csdn.net/zpfzly/article/details/105500815