<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spring on Weiming's Blog</title><link>https://axerzone.cn/categories/spring/</link><description>Recent content in Spring on Weiming's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>© 2026 Weiming</copyright><lastBuildDate>Tue, 10 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://axerzone.cn/categories/spring/index.xml" rel="self" type="application/rss+xml"/><item><title>Spring Cloud 微服务入门</title><link>https://axerzone.cn/posts/spring-cloud-intro/</link><pubDate>Tue, 10 Sep 2024 00:00:00 +0000</pubDate><guid>https://axerzone.cn/posts/spring-cloud-intro/</guid><description>&lt;h1 class="relative group"&gt;Spring Cloud 微服务入门，别被吓到
 &lt;div id="spring-cloud-微服务入门别被吓到" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#spring-cloud-%e5%be%ae%e6%9c%8d%e5%8a%a1%e5%85%a5%e9%97%a8%e5%88%ab%e8%a2%ab%e5%90%93%e5%88%b0" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;

&lt;h2 class="relative group"&gt;微服务到底是啥
 &lt;div id="微服务到底是啥" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%be%ae%e6%9c%8d%e5%8a%a1%e5%88%b0%e5%ba%95%e6%98%af%e5%95%a5" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;第一次听&amp;quot;微服务&amp;quot;这个词的时候，我觉得好高大上。服务注册发现、熔断降级、链路追踪，一堆概念砸过来挺吓人的。但学了之后发现，核心思路其实没那么复杂。&lt;/p&gt;</description></item><item><title>Spring Boot 自动配置原理</title><link>https://axerzone.cn/posts/springboot-auto-config/</link><pubDate>Tue, 05 Sep 2023 00:00:00 +0000</pubDate><guid>https://axerzone.cn/posts/springboot-auto-config/</guid><description>&lt;h1 class="relative group"&gt;Spring Boot 自动配置，看完你就不慌了
 &lt;div id="spring-boot-自动配置看完你就不慌了" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#spring-boot-%e8%87%aa%e5%8a%a8%e9%85%8d%e7%bd%ae%e7%9c%8b%e5%ae%8c%e4%bd%a0%e5%b0%b1%e4%b8%8d%e6%85%8c%e4%ba%86" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;用 Spring Boot 写项目的时候，你有没有想过：我就加了个 &lt;code&gt;spring-boot-starter-web&lt;/code&gt; 依赖，Tomcat 怎么就自己跑起来了？数据源我就配了个 URL，连接池怎么就自动用上 HikariCP 了？&lt;/p&gt;
&lt;p&gt;这背后全是自动配置在搞事情。&lt;/p&gt;

&lt;h2 class="relative group"&gt;@SpringBootApplication 背后藏了什么
 &lt;div id="springbootapplication-背后藏了什么" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#springbootapplication-%e8%83%8c%e5%90%8e%e8%97%8f%e4%ba%86%e4%bb%80%e4%b9%88" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;启动类上那个 &lt;code&gt;@SpringBootApplication&lt;/code&gt;，其实是个组合注解：&lt;/p&gt;</description></item><item><title>Spring AOP 原理</title><link>https://axerzone.cn/posts/spring-aop-explained/</link><pubDate>Thu, 15 Jun 2023 00:00:00 +0000</pubDate><guid>https://axerzone.cn/posts/spring-aop-explained/</guid><description>&lt;h1 class="relative group"&gt;AOP 这东西，说难不难说简单不简单
 &lt;div id="aop-这东西说难不难说简单不简单" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#aop-%e8%bf%99%e4%b8%9c%e8%a5%bf%e8%af%b4%e9%9a%be%e4%b8%8d%e9%9a%be%e8%af%b4%e7%ae%80%e5%8d%95%e4%b8%8d%e7%ae%80%e5%8d%95" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;AOP，面向切面编程。第一次听到这个词的时候我满脸问号——什么切面？切什么？&lt;/p&gt;
&lt;p&gt;后来我换了个理解方式就通了：你有一堆业务方法，想在每个方法执行前后都打个日志，怎么办？一个个方法里加 &lt;code&gt;log.info()&lt;/code&gt;？那要是有 200 个方法呢？改到吐。AOP 就是帮你把这种&amp;quot;横切&amp;quot;的逻辑抽出来，统一处理。&lt;/p&gt;

&lt;h2 class="relative group"&gt;什么是 AOP，为什么需要它
 &lt;div id="什么是-aop为什么需要它" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bb%80%e4%b9%88%e6%98%af-aop%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e5%ae%83" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;OOP 的核心是纵向的继承和封装，但有些逻辑是横向的——日志、事务、权限校验，跟具体业务没关系，但到处都要用。如果每个方法都写一遍，代码重复不说，后续改起来也要命。&lt;/p&gt;</description></item><item><title>Spring IOC 容器原理</title><link>https://axerzone.cn/posts/spring-ioc-container/</link><pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate><guid>https://axerzone.cn/posts/spring-ioc-container/</guid><description>&lt;h1 class="relative group"&gt;Spring IOC 到底干了啥
 &lt;div id="spring-ioc-到底干了啥" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#spring-ioc-%e5%88%b0%e5%ba%95%e5%b9%b2%e4%ba%86%e5%95%a5" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;学 Spring 的时候，IOC（控制反转）这个词听了不下一百遍。老师讲、教程讲、面试题也讲。但我一开始真没搞懂这玩意到底在干嘛——不就是 new 一个对象吗，为啥要搞得这么复杂？&lt;/p&gt;
&lt;p&gt;后来写项目写多了才明白，Spring 的 IOC 容器本质上就是帮你管理对象的。你不用自己 new，它帮你 new，帮你组装，帮你销毁。听着简单，但里面门道挺多的。&lt;/p&gt;

&lt;h2 class="relative group"&gt;Bean 生命周期——从出生到死亡
 &lt;div id="bean-生命周期从出生到死亡" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#bean-%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f%e4%bb%8e%e5%87%ba%e7%94%9f%e5%88%b0%e6%ad%bb%e4%ba%a1" aria-label="锚点"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;一个 Bean 从创建到被 GC 回收，中间经历了不少事。大致流程是这样：&lt;/p&gt;</description></item></channel></rss>