springboot jar中没有主清单属性_Spring Boot 常见错误及解决方法

导读

Spring Boot 作为 Java 生态中最流行的开发框架,意味着被数以万计的开发者所使用。下面根据我们自身遇到的问题,加上用户提供的一些反馈,来大致梳理下 Spring Boot 的常见错误及解决方法。

找不到配置?配置不对?配置被覆盖?
Spring Boot 配置加载过程解析:1、Spring Boot 配置的加载有着约定俗成的步骤: 从 resources 目录下加载  application.properties/application.yml ; 再根据里面的  spring.profiles.active来加载不同 profile 的配置文件 application-dev.properties/application-dev.yml  (比如加载 profile 为 dev 的配置文件)。2、Spring Boot 所有的配置来源会被构造成 PropertySource,比如 -D 参数, -- 参数, 系统参数, 配置文件配置等等。这些 PropertySource 最终会被添加到 List 中,获取配置的时候会遍历这个 List ,直到第一次获取对应 key 的配置,所以会存在优先级的问题。具体配置的优先级参考: https://stackoverflow.com/a/45822571配置覆盖案例:Nacos 服务注册的 IP 可以通过 spring.cloud.nacos.discovery.ip 设置,当我们打成 JAR 包之后,如需修改注册 IP,可以通过 -Dspring.cloud.nacos.discovery.ip=xxx (-D参数配置的优先级比配置文件要高)。配置问题排查:进入 http://host:port/actuator/env  这个 endpoint 查看具体的配置项属于哪个 PropertySource。Jar 包启动不了
执行 Spring Boot 构建的 jar 包后,返回 "my.jar中没有主清单属性" 错误。错误分析: Spring Boot 的正常 jar 包运行方是通过 spring-boot-loader 这个模块里的 JarLauncher 完成的,该类内部提供了一套运行的规范。解决方案: 在 pom 里加上 spring-boot-maven-plugin 的 maven 插件配置(该插件会在 jar 里加入 spring-boot-loader 的代码,并在 MANIFEST.MF 中的 Main-Class 里写入 JarLauncher):
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>plugin>

自动化配置类没有被加载


条件注解是 Spring Boot 的核心特性之一,第三方的 starter 或我们自定义的 starter 内部都会加载一些 AutoConfiguration,有时候会存在一些 AutoConfiguration 没有被加载的情况。导致出现 NoSuchBeanDefinitionException, UnsatisfiedDependencyException 等异常排查步骤(三种方式):1、把 spring 的日志级别调到 debug 级别:logging.level.org.springframework: debug。2、从 ApplicationContext 中获取 ConditionEvaluationReport,得到内部的 ConditionEvaluationReport.ConditionAndOutcomes 类中的输出信息。3、进入 http://host:port/actuator/conditions 这个 endpoint 查看条件注解的 match 情况。TIps:欢迎关注微信公众号:Java后端这是日志打印的不满足条件的 AutoConfiguratoin:
Unconditional classes:
----------------------
org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration
org.springframework.cloud.client.ReactiveCommonsClientAutoConfiguration
org.springframework.boot.actuate.autoconfigure.info.InfoContributorAutoConfiguration
org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClientAutoConfiguration
org.springframework.cloud.client.CommonsClientAutoConfiguration
org.springframework.cloud.commons.httpclient.HttpClientConfiguration
org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration
org.springframework.cloud.loadbalancer.config.BlockingLoadBalancerClientAutoConfiguration

定义的 Component 没有被扫描到


@SpringBootApplication 注解内部也会使用 @ComponentScan 注解用于扫描 Component 。默认情况下会扫描 @SpringBootApplication 注解修饰的入口类的包以及它下面的子包中所有的 Component 。

@ComponentScan:

https://github.com/StabilityMan/StabilityGuide/blob/master/ComponentScan

这是推荐的包结构中项目的结构:

86bc571170c14409fed12d563165f0c3.png

exclude 包下的类不会被扫描到,card 包下的类会被扫描到。Actuator Endpoint 访问不了
访问 Actuator,出现 404 错误。解决方案:1、Spring Boot 2.x 版本对 Actuator 做了大量的修改,其中访问的路径从 http://host:port/endpointid 变成了http://host:port/actuator/endpointid 。确保访问的路径正确。2、Endpoint 有 Security 要求,在配置里加上 management.endpoints.web.exposure.include=* 即可。

- END -

读 1. 扎心一问:分库分表就能无限扩容吗2. 全面了解 Nginx 主要应用场景3. 一场近乎完美基于 Dubbo 的微服务改造实践4. 什么是一致性 Hash 算法?

5.  团队开发中 Git 最佳实践

dc3cc4157f82856bc967c08d1c272ca6.png

在看 cc0ff4b10db5064db919383a91495f69.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nature:2020年10大科学发现

文章来源&#xff1a;新浪探索在2020年即将结束之际&#xff0c;《自然》&#xff08;Nature&#xff09;杂志盘点了今年发表的科学新闻和研究观点&#xff0c;从中选出了十项最为重大的科学发现&#xff0c;既包括新冠病毒研究、压力如何导致白发、HIV治疗等医学方面的研究&am…

php mysql上传多张图片_PHP实现一次性多张图片上传功能

原标题&#xff1a;PHP实现一次性多张图片上传功能最近遇到一个需求&#xff0c;就是多张图片上传&#xff0c;按住Ctrl键能选择多张图片一次性上传&#xff0c;上传成功后数据库保存图片的路径及图片原来的文件名。该功能一般在比较成熟的内容编辑器插件中有&#xff0c;今天特…

【2018.6.7】阶段总结

颓废了好久-.- 不记得从什么时候开始的了吧- 1. 好像是去年初赛翻车&#xff1f;&#xff09;&#xff09;归于以外好像也是我不对&#xff0c;&#xff0c;&#xff0c;总之很多&#xff0c;&#xff0c;不对的地方吧&#xff0c;&#xff0c;&#xff0c;我&#xff0c;&am…

车联网支持实现无人驾驶的思考

来源&#xff1a;机器学习研究组订阅号/ 导读 /无人驾驶是车辆作为运载工具智能化、网联化发展的核心应用功能&#xff0c;也是车联网、智慧交通产业发展的核心应用服务。网联无人驾驶则是在车辆智能化基础上&#xff0c;通过车联网实现车与车、车与路等的互联和信息交互&#…

简论重大科学发现诞生的时机

来源&#xff1a;秦四清科学网博客。链接地址&#xff1a;http://blog.sciencenet.cn/blog-575926-1263364.html 纵观科学史&#xff0c;几乎每一项重大科学发现诞生的时机需要&#xff1a;&#xff08;1&#xff09;当时已具备足够的知识和资料储备&#xff1b;&#xff08;2&…

python pip gpl_python pip怎么更新包

1、pip下载安装1.1 pip下载进入https://pypi.python.org/pypi/pip&#xff0c;下载 .tar.gz压缩包1.2 Linux安装pip# tar -xzvf pip-1.5.4.tar.gz 解压# cd pip-1.5.4 进入解压文件# python setup.py install 安装1.3 升级pippython -m pip install…

人工智能皇冠上的明珠:自然语言处理简介、最新进展、未来趋势

来源&#xff1a;图灵人工智能 编辑&#xff1a;TJUNLP 自然语言处理&#xff08;Nature Language Processing&#xff0c;NLP&#xff09;被誉为“人工智能皇冠上的明珠”&#xff0c;一方面表明了它的重要性&#xff0c;另一方面也显现出了它的技术难度。本文整理了自然语言…

Yoshua Bengio:深度学习的未来需要“探索高级认知的归纳偏置”

来源&#xff1a;AI科技评论 编译&#xff1a;Mr Bear本文介绍了Yoshua Bengio及其学生Anirudh Goyal近期发表的一篇论文&#xff0c;该论文围绕“归纳偏置”概念&#xff0c;展开了对当下人工智能研究现状的讨论&#xff0c;并提出了富有启发性的观点&#xff1a;不同的深度学…

头发剪短了要快速生发_怎样生发效果最好最快?四个方法快速长出头发!

脱发问题导致很多人头发稀少、头发细软油腻&#xff0c;这些症状&#xff0c;让患者时常感到十分的痛苦&#xff0c;因为他们每天都要面临被调侃和取笑的尴尬&#xff0c;不仅个人形象全无&#xff0c;更是饱受严重的自卑心理&#xff0c;甚至因为脱发问题&#xff0c;总是给人…

AI求解薛定谔方程,兼具准确度和计算效率,登上《自然-化学》

来源&#xff1a;机器学习研究组订阅号即使并非物理学界人士&#xff0c;我们也对薛定谔这个名字并不陌生&#xff0c;比如「薛定谔的猫」。著名物理学家埃尔温 薛定谔是量子力学奠基人之一&#xff0c;他在 1926 年提出的薛定谔方程&#xff08;Schrdinger equation&#xff…

redis修改端口号后还是占用6379_Redis分布式缓存分布式集群搭建

当你试图解决一个你不理解的问题时,复杂化就产成了。—Andy BootheRedis集群安装部署Redis是一个运行在内存的非关系型数据库&#xff0c;因为其速度快(效率高)&#xff0c;支持数据的持久化(安全)&#xff0c;事务操作的原子性(所有操作的原子性)&#xff0c;使得其在高并发场…

千禧年大奖难题之始与未终

来源&#xff1a;数学文化撰文&#xff1a;Arthur Michael Jaffe、薛博卿“千禧年大奖难题”的诞生千禧之际&#xff0c;万象更新&#xff0c;数学界的柔风细雨中惊响起初夏的雷鸣。七个重要的数学问题&#xff01;七百万美元的巨额奖金&#xff01;克雷数学研究所公布的大奖难…

linux mysql 5.6.14_CentOS 6.4下编译安装MySQL 5.6.14

配置用户MySQL启动成功后&#xff0c;root默认没有密码&#xff0c;我们需要设置root密码。设置之前&#xff0c;我们需要先设置PATH&#xff0c;要不不能直接调用mysql修改/etc/profile文件&#xff0c;在文件末尾添加PATH/usr/local/mysql/bin:$PATHexport PATH关闭文件&…

全世界最前沿的125个科学问题

来源&#xff1a;世界先进制造技术论坛在庆祝Science创刊125周年之际&#xff0c;Science公布了125个最具挑战性的科学问题。了解前沿科学研究方向&#xff0c;对你的成长或许有所帮助。简单归纳统计这125个问题&#xff0c;其中涉及生命科学的问题占46%&#xff0c;关系宇宙和…

解读阿里官方代码规范

2017年开春&#xff0c;阿里对外公布了「阿里巴巴Java开发手册」从头到尾浏览了一遍这份手册之后&#xff0c;感觉很棒。虽然其中的某些观点笔者不能苟同&#xff0c;但大部分的规范还是值得绝大多数程序员学习和遵守的。 笔者将对这份代码规范中的一些细节做一些解读&#xff…

知识图谱下一站:认知智能

来源&#xff1a;华东师大ICA本文系首届“认知智能”研讨会讨论部分会议纪要。首届“认知智能”研讨会&#xff0c;由华东师范大学计算机学院主办&#xff0c;于12月8日在华东师范大学中山北路校区办公楼小礼堂成功举办。会中多位专家学者进行了学术报告&#xff0c;并围绕认知…

mysql常见错误解决方法_mysql常见错误解决办法

解决mysql利用二进制日志恢复数据报错&#xff1a;ERROR 1781 (HY000) at line 16: SESSION.GTID_NEXT cannot be set to UUID:NUMBER when GLOBAL.GTID_MODE OFF.解决办法&#xff1a;配置gtid选项配置前&#xff1a;mysql> show global variables like ‘gtid_mode‘;ERR…

win10 git bash 闪退

使用ghost重装了win10 专业版后。安装git&#xff0c;尝试重装了n个版本的git,右键git bash here 直接闪退&#xff0c;直接进入安装目录打开git-bash.exe依旧闪退&#xff0c; git右键点击Git Bash Here闪退并会在当前目录下生成mintty.exe.stackdump文件。 右键GIT GUI here错…

智慧城市产业图谱(2020年)

来源&#xff1a;中国信息通信研究院&#xff08;转载请注明来源&#xff09;编辑 &#xff1a;蒲蒲推进新型智慧城市&#xff0c;是党中央、国务院推动我国新型工业化、信息化、城镇化和农业现代化同步发展做出的重大决策&#xff0c;有利于深化新一代信息通信技术与城市发展的…

制造业人工智能8大应用场景

资料来源&#xff1a;软件定义世界&#xff08;SDX&#xff09;文&#xff1a;e-works孙亚婷 郑倩 来源&#xff1a;数字化企业人工智能的概念第一次被提出&#xff0c;是在20世纪50年代&#xff0c;距今已六十余年的时间。然而直到近几年&#xff0c;人工智能才迎来爆发式的增…