SPring 原理深入
why Spring
很多模块的集合(核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块)
5.0版本
最新的5.x版本中 Web 模块的 Portlet 组件已经被废弃掉,同时增加了用于异步响应式处理的 WebFlux 组件
@RestController vs @Controller
Controller 返回一个页面
@RestController 返回JSON 或 XML 形式数据
Spring IOC & AOP
IOC(Inverse of Control:控制反转)是一种设计思想
就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。(代码不必new 由容器new,调用的时候需要从容器调用 )
IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。 核心技术(XML解析+反射+工厂模式(factory))
优点 :解耦
实现步骤
1、解析XML的Spring配置文件
2、生成Factory工厂类
3、通过过xml属性的反射生成类
Spring AOP就是基于Cglib动态代理的
AOP实现自定义注解
Spring bean
@Component 注解作用于类,而@Bean注解作用于方法。
Spring MVC
Model1 整个 Web 应用几乎全部用 JSP 页面组成,只用少量的 JavaBean 来处理数据库连接、访问等操作 JSP 既是控制层又是表现层
Model2 Java Bean(Model)+ JSP(View,)+Servlet(Controller)
Spring MVC
工作原理
特点 返回值是一个视图+ mapper配置文件需要单独读取