Boot 可执行 JAR 与普通 JAR 有何区别?
查看完整题解
参考回答
直接回答
Boot可执行JAR通常把应用类放在BOOT-INF/classes,依赖放在BOOT-INF/lib,并用Boot启动器处理这种布局;普通库JAR通常直接按包路径放类。普通JAR也能有Main-Class而被java -jar运行,所以区别不应仅说“一个能运行、另一个不能运行”。
讲清原理
可执行归档带有启动信息与嵌套依赖布局,运行时由相应加载机制使用。它通常不适合作为其他项目的普通类路径库,因为消费者不会自动按Boot归档规则查找内部应用类。
需要复用业务代码时,优先拆出普通库模块,再让启动模块依赖它;也可以明确产出不同分类的制品。可执行JAR包含库也不意味着会自动包含外部数据库、配置与业务数据。
例子与易错点
检查归档清单与目录结构,比只看扩展名更可靠。把上传目录或生产密码打进JAR,会使更新与环境隔离更难管理;它们应有独立生命周期。
相关题:第 7 题、第 8 题、第 15 题。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。