近日在使用Spring boot 2.0.0.RELEASE 运行时,抛出了bean注入异常
代码如下:
@Bean public FilterRegistrationBean httpFilter(){ FilterRegistrationBean registrationBean = new FilterRegistrationBean(); registrationBean.setFilter(new HttpFilter()); registrationBean.addUrlPatterns("/threadLocal/*"); return registrationBean; }
报错信息大致如下:
2018-03-31 14:00:30.356 ERROR 18536 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'httpFilter' defined in com.mmall.concurrency.ConcurrencyApplication: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method 'httpFilter' threw exception; nested exception is java.lang.NoClassDefFoundError: javax/servlet/Filter
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
..........
查看pom文件,找到是内置的tomcat的jar所引起的冲突报错
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>