SpringMVC大致过程

MVC

MVC是一种框架模式,将M和V的实现代码分离。

  1. M(Model):模型,业务规则。处理请求、返回数据,数据可以被多个视图使用。
  2. V(View):视图,就是你能看到并能交互的界面。
  3. C(Controller):控制器,负责接收用户的请求去调用哪个M去处理,然后再返回确定哪个V显示数据。


Servlet

为什么在这里讲一下Servlet?其实SpringMVC就是一个Servlet,所以弄清楚Servlet的过程,SpringMVC的就类似了。

我们现来看一下Servlet的类图关系。

阅读更多

Spring中Bean的生命周期

Bean是什么?

本来没有这一节的,但是写完源码之后,在想是否能够类比一下别的更具体的东西,然后想着想着突然想到了个Bean到底是什么?好像用了这么久的Spring,都还没想过这个问题。然后就去看看官网、书、博客等。就有了这一节。

官网的解释:

《Spring5核心原理与30个类手写实战》中的解释:
Bean对于Spring的意义就像Object对于OOP的意义一样。Spring在Java组件化(JavaBean、EJB等)开发理念下出现的。

个人理解
Bean是一个组件(对象),组成了我们的应用程序,通过IoC可以对其进行管理。就好比去吃自助餐里面的一道道菜。

阅读更多

SpringIOC大致流程

是什么?

​ 官方文档的解释是:IoC也称为依赖注入(DI)。在此过程中,对象仅通过构造函数参数,工厂方法的参数或在构造或从工厂方法返回后在对象实例上设置的属性来定义其依赖项(即,与它们一起使用的其他对象) 。然后,容器在创建bean时注入那些依赖项。从本质上讲,此过程是通过使用类的直接构造或诸如服务定位器模式之类的机制来控制其依赖关系的实例化或位置的Bean本身的逆过程(因此,其名称为Control Inversion)。

​ 简单来说:就是我们将一个个的bean对象交给IoC去管理,他会帮助我们去创建对象实例、填充属性、初始化、添加监听器等过程。

阅读更多

循环依赖

是什么?

简单的来说就是对象a的属性中引用了对象b,对象b的属性中引用了对象c……最后引用到a。

1
2
3
4
5
6
7
8
9
10
11
<bean id="a" class="com.zmm.test.A" lazy-init="false">
<property name="b" ref="b"/>
</bean>

<bean id="b" class="com.zmm.test.B" lazy-init="false">
<property name="c" ref="c"/>
</bean>

<bean id="c" class="com.zmm.test.C" lazy-init="false">
<property name="a" ref="a"/>
</bean>
阅读更多

动态规划

前言

​ 前一个月开始刷题,那会儿在力扣上面,见一个DP题一个不会的。突然觉得自己好垃圾哈哈哈。为什么现在写这个呢,就刚刚刷着刷着题,突发奇想了,觉得好像找到了哪个感觉?开始刷DP过瘾了哈哈哈。但是我又不太会讲,直接来分享我对一些DP案例题的解题思路。不多说,进入正题。

阅读更多