Spring Boot

搜索结果

在博客中搜索相关文章

79 篇文章 7

Spring Boot

Spring Boot 是基于 Spring 的脚手架,遵循“约定优于配置”,能够快速搭建独立、准生产级项目。通过 Starter(Maven POM)一次声明即可引入所需依赖,简化包管理。项目入口类的 main 方法调用 SpringApplication.run,完成环境准备、容器创建、Banner 打印、监听器通知等启动流程。@EnableAutoConfiguration 结合 spring.factories 中的 AutoConfiguration 类实现自动装配,@Conditional 系列注解根据类、Bean、属性等条件决定 Bean 实例化。核心注解 @SpringBootApplication 包含自动配置、组件扫描等功能,使开发、部署效率大幅提升,并天然支持云平台集成。

面试现场【Spring篇】

本文系统梳理了 Spring 面试常见知识点:列举了 Spring 使用的工厂、代理、单例、模板方法、观察者、适配器等设计模式;概述了 Core、Context、Web、MVC、DAO、ORM、AOP 等核心模块;阐释 IOC/DI 的本质、BeanFactory 与 ApplicationContext、FactoryBean 的区别以及 @Repository、@Service、@Component、@Controller 的分层意义;介绍 AOP 的概念、通知类型、动态/静态代理及 JDK 与 CGLIB 的实现差异,并比较 Spring AOP 与 AspectJ AOP;详细说明 Bean 的四阶段生命周期、三级缓存如何解决单例循环依赖以及为何需三级缓存;对比 @Autowired 与 @Resource 的注入策略;梳理 Spring 事务的五种隔离级别和七种传播行为;最后解析 Spring Boot 自动装配的 EnableAutoConfigurationImportSelector、spring.factories 与条件过滤机制。

双层缓存+响应式设计:博客每日一句功能完美落地教程

本文详细阐述了在博客底部实现“每日一句”功能的完整方案。后端采用 Spring Boot + RestTemplate,提供 `/api/daily-quote` 接口,使用 ConcurrentHashMap 按日期缓存当天句子,防止频繁调用有道词典 API,并在异常时返回固定备用句子。前端使用原生 JavaScript 与 CSS3,首次请求后将数据写入 localStorage,实现客户端一天一次的二层缓存;通过 `white-space: nowrap`、`text-overflow: ellipsis` 与 `.expanded` 类实现长句折叠/展开交互。布局采用弹性盒子和媒体查询,在桌面、平板、手机三种断点下自动适配宽度和字号。整体实现了每日更新、降级备份、性能优化和响应式展示,代码可直接复制使用。

使用Spring Boot整合Mybatis-Plus实现数据库的增删查改

文章详细演示了在 Spring Boot 项目中使用 Mybatis‑Plus 完成增删改查的全过程。首先在 MySQL 中创建 `tbl_employee` 表并插入示例数据;随后初始化 Spring Boot 项目并在 `pom.xml` 中加入 Mybatis‑Plus、MySQL、Druid 等依赖。将数据库连接配置写入 `application.yml`,使用 Lombok 编写实体类并通过 `@TableName`、`@TableId`、`@Version` 注解映射表结构。定义继承 `BaseMapper` 的 Mapper 接口并在启动类上使用 `@MapperScan` 指定扫描路径。最后提供 JUnit 测试代码,分别演示 `selectList`、`insert`、`update`、`delete` 等 CRUD 操作的使用方法,验证 Mybatis‑Plus 与 Spring Boot 的无缝集成。

JVM类加载机制

JVM在执行 main 方法时先通过类加载器把主类加载到方法区,加载过程依次为加载、验证、准备、解析、初始化。加载阶段在内存生成对应的 Class 对象;验证检查字节码合法性;准备为静态字段分配默认值;解析把符号引用转为直接引用;初始化执行静态代码块并赋予真实值。JVM 提供引导、扩展、应用和自定义四种加载器,启动时由 Launcher 创建 ExtClassLoader 与 AppClassLoader。类加载遵循双亲委派机制:先交给父加载器(最终到引导加载器)尝试加载,若失败再由当前加载器自行查找。示例代码展示了按需加载、静态块打印以及各加载器的加载路径,说明了类加载的延迟性和层次结构。

Spring Boot AOP架构落地与最佳实践

Spring Boot AOP通过切面把日志、性能监控、权限校验等横切关注点模块化,提升代码可维护性。文章先介绍 AOP 基础概念及 Spring Boot 的自动配置方式,随后给出日志、性能、授权等实战切面实现示例,并演示自定义注解、ThreadLocal、CGLIB 代理等技术细节。最佳实践包括按功能划分切面目录、使用 @Order 控制执行顺序、优化切点表达式、防止性能损耗以及统一异常处理和缓存切面。最后结合分布式链路追踪和异步执行,提供在生产环境中落地 AOP 的完整方案。

基于Spring Boot + MyBatis-Plus + Thymeleaf的评论管理系统深度解析

本文详细阐述了基于Spring Boot、MyBatis‑Plus和Thymeleaf的评论管理系统实现,包括前后端分离且后端保留模板渲染的架构设计、Spring Boot+MyBatis‑Plus分页查询与动态条件构造、批量操作与事务控制、Redis缓存刷新与懒/预加载策略,以及Bootstrap5+Flex实现的响应式表格/卡片视图切换和内容展开交互,提供完整代码示例和性能优化思路。

通意千应 - 你的专属AI助手

通意千应是面向企业的AI对话平台,采用Spring Boot+Vue前后端分离架构,集成ChatGPT、DeepSeek、Qwen等多模型,提供流式回复、Markdown渲染、代码高亮、深度思考、网络搜索等交互特性。系统具备JWT+Spring Security安全体系、MySQL+Redis存储、分享链接、会话管理、使用统计等功能;管理员可进行用户、会话、数据统计及权限控制。平台支持灵活模型切换、Token消耗统计,帮助企业快速构建专属AI助手。

隐式扫描不到 Bean 的定义

Spring Boot 启动类使用 @SpringBootApplication 时,内部的 @ComponentScan 若未指定 basePackages,会默认扫描启动类所在的包。将 Controller 移到其他包后超出默认扫描范围,导致 Bean 找不到,应用失效。解决办法是显式配置扫描路径,如在启动类上添加 @ComponentScan("com.zou.controller"),或使用 @ComponentScans 指定多个包。需要注意显式指定后默认包不再被扫描,避免遗漏。

Spring

Spring核心是IoC和AOP,IoC通过DI由容器实现,容器分BeanFactory(延迟、轻量)和ApplicationContext(完整、预实例化)。Bean是POJO,由容器管理,可用@Component、@Service等注解声明,@Autowired/@Resource实现注入,@Scope定义单例、prototype、request、session等作用域,@PostConstruct/@PreDestroy控制生命周期。循环依赖通过单例的三级缓存(singletonFactories、earlySingletonObjects、singletonObjects)解决。@Autowired按类型注入,@Resource默认按名称注入。

Seata分布式事务:Java微服务架构下的“数据一致性”通关指南

Seata 通过事务协调器(TC)、事务管理器(TM)和资源管理器(RM)实现微服务间的全局事务,解决跨服务的数据一致性问题。文章先分析传统 XA、TCC、消息表等方案的性能与实现缺陷,随后介绍 Seata 三种主流模式:AT 通过自动生成回滚日志实现零代码侵入,适用于大多数关系型业务;TCC 采用 Try‑Confirm‑Cancel 手动补偿,支持非关系型资源并要求幂等、防悬挂;Saga 采用正向+补偿链式执行,适合长事务场景。随后给出基于 Spring Boot 的实战步骤、配置要点以及 XID 传播方式,并提供 TC 高可用、事务日志存储、常见坑点的防范建议,帮助 Java 开发者在生产环境安全、快速落地分布式事务。

@EnableWebMvc:Spring MVC定制的双刃剑

@EnableWebMvc是Spring MVC的核心开关,标志开发者接管所有MVC配置。它会覆盖Spring Boot的自动配置,导致静态资源、视图解析、消息转换、CORS等功能失效,常见表现为404、JSON 序列化错误或跨域请求被拦。解决方案是:在 Spring Boot 项目中尽量去掉 @EnableWebMvc,仅实现 WebMvcConfigurer;若必须使用,则必须手动配置资源处理、默认 Servlet、消息转换器、跨域映射等关键组件。文章还给出传统 Spring MVC 与文件上传的完整配置示例,并提供使用 @EnableWebMvc 的场景判断表、配置检查清单以及调试方式,帮助开发者在需要完全自定义时安全使用该注解。