Spring Boot 2.0 常见问题总结(一)
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
转载于:https://www.cnblogs.com/miantiao312/p/11337406.html
Spring Boot 2.0 常见问题总结(一)相关推荐
- Spring Boot 2.0.0参考手册_中文版
Spring Boot参考文档 第一部分:Spring Boot文档 1. 关于文档 Sring参考文档可以通过html,pdf和epub 三种形式得到.最新的文档可以从docs.spring.io/ ...
- 基于Spring Boot 2.0的IoT应用集成和使用CSE实践
本文通过一个IoT的应用展现在Spring Boot 2.0中集成和使用CSE.IoT应用原来使用Spring Boot 2.0开发,通过少量的步骤集成CSE,然后展现了集成后带来了哪些新特性,以及中 ...
- 使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目
使用最新版(2020)IntelliJ IDEA 新建 Spring Boot 2.0 项目 一:创建项目,并添加相应依赖 新建Project,并指定Project为Spring Initializr ...
- spring boot 2.0 源码分析(二)
在上一章学习了spring boot 2.0启动的大概流程以后,今天我们来深挖一下SpringApplication实例变量的run函数. 先把这段run函数的代码贴出来: /*** Run the ...
- Spring Boot 3.0.0 发布第一个里程碑版本M1,你的 Java 升到 17 了吗?
欢迎关注方志朋的博客,回复"666"获面试宝典 文章来源:程序猿DD 2022年1月20日,Spring官方发布了Spring Boot 3.0.0的第一个里程碑版本M ...
- Spring Boot 2.0 热部署指南
Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功 ...
- spring boot 2.0 java8 下 foundError: javax/xml/bind/JAXBException 解决方法
spring boot 2.0 java8 下 foundError: javax/xml/bind/JAXBException 解决方法 参考文章: (1)spring boot 2.0 java8 ...
- Spring Boot 2.0选择HikariCP作为默认数据库连接池的五大理由
转载自公众号:工匠小猪猪的技术世界 摘要: 本文非原创,是「工匠小猪猪的技术世界」搜集了一些HikariCP相关的资料整理给大家的介绍,主要讲解了为什么sb2选择了HikariCP以及HikariCP ...
- 【译】Spring Boot 2.0 官方迁移指南
前提 希望本文档将帮助您把应用程序迁移到 Spring Boot 2.0. 在你开始之前 首先,Spring Boot 2.0 需要 Java 8 或更高版本.不再支持 Java 6 和 7 了. 在 ...
最新文章
- 洛谷 P1663 山
- 在Eclipse中运行hadoop程序
- java 匿名 异常_JAVA类(内部类、匿名内部类、异常、自定义异常)
- 女生心中的理想男生!这些条件你符合几条?
- 10个简单的 Java 性能调优技巧
- 蓝桥杯小朋友排队java_[蓝桥杯][历届试题]小朋友排队 (C++代码)
- ubuntu安装scala开发环境
- php时间戳源码,php格式化时间戳
- 从零开始学前端:OPPO商城轮播图 --- 今天你学习了吗?(CSS:Day23)
- 为什么越来越少的人用 jQuery?
- CentOS上安装man手册
- AngularJS控制器中的#39;this#39;与$ scope
- Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
- kml文件转成cvs_Kml文件转换成EXCEL、MIF、MID文件下载_Kml文件转换成EXCEL、MIF、MID文件官方下载-太平洋下载中心...
- Mac JDK下载与安装
- traceroute、tracert服务的工作原理
- 0.Java介绍(Java语言特点,什么是JDK、JRE、JVM,Java开发注意事项和细节说明,Java转义字符)
- “RFID射频识别技术”简介
- DSPE;CAS:1069-79-0 ;二硬脂酰基磷脂酰乙醇胺;功能化磷脂
- 差异表达基因热图怎么看_陈根:从基因层面看衰老本质,被误会的端粒差异