spring Boot (五) 启动problem

基本配置完工之后,剩下的就是启动了,启动的过程中,主要遇到两个问题:
问题一:java.lang.NoClassDefFoundError: javax/servlet/ServletContext

2016-06-17 11:04:14.216 ERROR 4684 --- [           main] o.s.boot.SpringApplication               : Application startup failed

java.lang.NoClassDefFoundError: javax/servlet/ServletContext
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
    at java.lang.Class.getDeclaredMethods(Class.java:1855)

其实就是忘记在web层添加层级依赖,光记得在父类假如了对javax.servlet的Maven依赖,web层启动的时候找不到,所以则报错了。

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>

在web层pom文件中加上即可。
问题二:@Override is not allowed when implementing interface method
override
pom文件中配置maven-compiler-plugin(可以避免每个人都要按照解决方案一设置一次)
问题三:启动依赖冲突,重复
默认情况下,Spring Boot使用Tomcat来作为内嵌的Servlet容器。但是SpringBoot启动,我们优先选择spring-boot-starter-undertow Maven依赖来代替Tomcat,进而提升性能,这种情况下,我们则必须把tomcat从依赖中移除:

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <!--springBoot中移除tomcat-->
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
                <version>${spring.boot.version}</version>
            </dependency>
            <!--加载spring-boot-starter-undertow-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-undertow</artifactId>
                <version>${spring.boot.version}</version>
            </dependency>

至于性能提高多少,我们则可以专门进行一下测试。通过Java VisualVM工具则可以明显的观察到:
tomcat
undertow
看两者的对比,我只是简单的对内存和线程进行了一下对比,课件堆的使用情况以及线程数,undertow启动都是占优势的,我仅仅是简单的启动SpringBoot,在执行的同一时间截图观察的情况。在平常的复杂业务启动过程中,我相信undertow启动的优势会更大。
问题四:beetlSQL实践需要注意命名转换的问题,详情下一篇对beetlSQL 命名转换及映射的描述。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值