spring其实来说就是一个大容器。
下面就是spring的三大核心思想:
ioc(控制反转):首先我们举一个没有控制反转的例子。当我们在service层调用dao层的函数时,通常都会实例化一个dao层的对象,然后通过对象来调用函数,而spring的控制反转就是将这个对象配置到框架(也就是容器)中去,这时我们需要使用这个对象是就向容器去要这个对象而不是我们主动去创建一个,也就是说这个对象的控制权是交给了框架(也可以说交给了配置文件),这就实现了控制反转。其好处也是不言而喻,代码可读性高,维护方便,结构清晰等等。
DI(依赖注入):其实这个可以理解为有值的ioc,我们在配置文件里配置对象属性的值,例如我们在配置一个user对象时,可以给它的age,name等属性进行赋值,也可以将其他对象注入到User中,而这个方式也可以降低耦合度。
Aop(面向切面):以前我们都是面向对象方式来编程的,面向切面可能比较陌生。面向切面其实我们也运用过,例如filter,所有的请求都通过过滤器,这就是面向切面,下面这张图可以很好帮助我们理解这个思想。
而spring中可以使用aop来进行事务管理,日志等操作
struts2:
我们在传统开发时,要建立大量的servlet,不好更改,更不好管理,而使用struts2就是使用一个前端控制器来管理所有的请求,对于管理和处理请求非常的方便。
下面上两张图,对于理解原理很有帮助