答:Actuator提供健康状态、指标及其他运行管理端点,帮助监控应用和依赖。端点是否存在、是否通过HTTP暴露、谁有权访问是不同设置。它能提供观测数据,却不等于自动建好告警平台,也不保证健康检查通过就代表每条业务链路都可用。
答:Boot可执行JAR通常把应用类放在BOOT-INF/classes,依赖放在BOOT-INF/lib,并用Boot启动器处理这种布局;普通库JAR通常直接按包路径放类。普通JAR也能有Main-Class而被java -jar运行,所以区别不应仅说“一个能运行、另一个不能运行”。
答:不一定。bootstrap.properties或bootstrap.yml通常与Spring Cloud的引导上下文机制有关,纯Boot不会仅因文件存在就自动按这套语义加载。当前Config Client常用spring.config.import配置数据入口;是否需要旧bootstrap方式,必须看所用Cloud版本与显式启用条件。
答:Profiles按激活条件选择一组Bean定义或配置文档,适合表达开发、测试等环境差异。它不是独立的应用实例,也不是访问控制系统。一个进程可同时激活多个profile;若它们提供同名属性或相冲突对象,还需明确覆盖与候选规则。
答:通常通过ControllerAdvice或RestControllerAdvice中的ExceptionHandler,按异常类型返回适当状态与稳定错误结构;参数绑定和验证失败也要覆盖。Boot提供相关默认错误处理,但不会替你定义所有业务错误含义。过滤器与异步任务的异常还存在各自边界。
答:选择与Boot代际匹配的MyBatis starter,配置DataSource,注册Mapper接口及SQL映射,再由服务层组织事务。官方兼容表中starter4.0对应Boot4.0+,不能将旧3.x组合直接视作4.1.2已兼容。框架减少会话管理代码,但SQL正确性、映射与连接配置仍由应用负责。
答:MVC应用可把脚本放在默认静态资源位置如classpath:/static,再由页面引用公共脚本文件;也可将构建后的前端资源交给合适服务器或CDN。磁盘上有文件不代表打包后路径仍一样,尤其不能默认把上传文件放进只读JAR资源目录。
答:围绕实际入口设计认证、授权、会话或令牌、输入限制、传输与秘密管理,再配置Spring Security等基础设施。引入security starter可提供默认保护,但不是完整业务权限设计。当前应使用SecurityFilterChain等配置方式,不能复制已移除的WebSecurityConfigurerAdapter方案。
答:通常配置CORS,明确允许的源、方法、请求头和是否携带凭据,并让预检请求在合适位置处理。跨域是浏览器的同源访问约束,不能靠给服务器接口随便加一个通配头就解决全部问题。携带凭据时不能把allowedOrigins的通配星号当作任意源安全放行方案。
答:先区分ActiveMQ Classic与Artemis,再选择相应Boot starter和兼容客户端,配置连接工厂与Broker地址,常用JmsTemplate发送、JmsListener接收。它们是消息接入工具,不会自动让数据库更新和消息发送成为一个跨系统原子事务。消息确认、重投与幂等仍需设计。