码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Boot 2.0 常见问题总结

时间:2019-08-12 00:46:19      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:ons   web   运行   could   加载失败   log   erb   username   table   

  • SpringBoot2.x 依赖环境和版本新特性说明

    依赖版本 jdk8 以上, Springboot2.x 用 JDK8 , 因为底层是 Spring framework5 。

  • jar 包方式运行 SpringBoot 项目时问题

    打包成jar包,需要增加maven依赖。

    <build>
      <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
      </plugins>
    </build>

    如果没加相关依赖,执行 maven 打包,运行后会报错: no main manifest attribute, in XXX.jar。

    原因解释:

    将 jar 文件文件后缀改为 zip 解压后得到目录如下:

          example.jar
               |
               +-META-INF
               |  +-MANIFEST.MF
               +-org
               |  +-springframework
               |     +-boot
               |        +-loader
               |           +-<spring boot loader classes>
               +-BOOT-INF
                  +-classes
                  |  +-mycompany
                  |     +-project
                  |        +-YourClasses.class
                  +-lib
                     +-dependency1.jar
                     +-dependency2.jar

    当没有引用 maven 插件的时候,就没有生成的 MANIFEST.MF 文件,而在 MANIFEST.MF 中有 Main-Class: org.springframework.boot.loader.JarLauncher,这会启动类加载器,类加载器会加载应用的主要函数,即执行 Start-Class: com.rookie.BaseProjectApplication,这就是程序入口。运行后会报错:no main manifest attribute, in XXX.jar,就是找不到 MANIFEST.MF 的
    Start-Class: xx.xx.xxApplication。入口函数都找不到,你说如何启动加载呢?肯定会加载失败的。

  • @RestController 和 @RequestMapping 注解不生效

    引入 Web 模块,需在 pom.xml 添加 spring-boot-starter-web 模块

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  • SpringBoot 启动失败信息如下:
    ***************************
    APPLICATION FAILED TO START
    ***************************
    Description:
    Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    Reason: Failed to determine a suitable driver class
    Action:
    Consider the following:
      If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
      If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
    Process finished with exit code 1

    原因是:创建 Spring Boot 项目时,在选择组件时添加了 mysql、mybatis 组件,添加了数据库组件,所以 autoconfig 会去读取数据源配置,而新建的项目还没有配置数据源,所以会导致异常出现。

    解决方案:

    ①:需要在启动类的 @EnableAutoConfiguration 或 @SpringBootApplication 中添加

    exclude = {DataSourceAutoConfiguration.class},排除此类的autoconfig。

    ②:添加数据库配置信息

    spring.datasource.jdbc-url=jdbc:mysql://localhost:3316/test1
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  • service 注入失败、@Autowired 注入失败 参考以下链接

    https://my.oschina.net/hxflar1314520/blog/1800035

Spring Boot 2.0 常见问题总结

标签:ons   web   运行   could   加载失败   log   erb   username   table   

原文地址:https://www.cnblogs.com/miantiao312/p/11337406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!