Spring框架指的都是SpringFramework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块是:核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。比如:CoreContainer中的Core组件是Spring所有组件的核心,Beans组件和Context组件是实现IOC和依赖注入的基础,AOP组件用来实现面向切面编程。java培训机构的小编来为大家介绍一番咯。
核心技术包括
依赖注入(DI),AOP,事件(events),资源,i18n,验证,数据绑定,类型转换,SpEL。
主要模块
SpringCore:基础,可以说Spring其他所有的功能都需要依赖于该类库。主要提供IOC依赖注入功能。
SpringAspects:该模块为与AspectJ的集成提供支持。
SpringAOP:提供了面向方面的编程实现。
SpringJDBC:Java数据库连接。
SpringJMS:Java消息服务。
SpringORM:用于支持Hibernate等ORM工具。
SpringWeb:为创建Web应用程序提供支持。
SpringTest:提供了对JUnit和TestNG测试的支持。
IoC(InverseofControl:控制反转)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。IoC在其他语言中也有应用,并非Spirng特有。IoC容器是Spring用来实现IoC的载体,IoC容器实际上就是个Map(key,value),Map中存放的是各种对象。
现在通过注解来实现
aop
能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
bean的作用域
singleton:唯一bean实例,Spring中的bean默认都是单例的。
prototype:每次请求都会创建一个新的bean实例。
request:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTPrequest内有效。
session:每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTPsession内有效。
global-session:全局session作用域,仅仅在基于portlet的web应用中才有意义,Spring5已经没有了。Portlet是能够生成语义代码(例如:HTML)片段的小型JavaWeb插件。它们基于portlet容器,可以像servlet一样处理HTTP请求。但是,与servlet不同,每个portlet都有不同的会话
springmvc
SpringMVC可以帮助我们进行更简洁的Web层的开发,并且它天生与Spring框架集成。SpringMVC下我们一般把后端项目分为Service层(处理业务)、Dao层(数据库操作)、Entity层(实体类)、Controller层(控制层,返回数据给前台页面)。
springmvc.工作原理
SpringMVC的入口函数也就是前端控制器DispatcherServlet的作用是接收请求,响应结果。
流程说明(重要):
客户端(浏览器)发送请求,直接请求到DispatcherServlet。
DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。
解析到对应的Handler(也就是我们平常说的Controller控制器)后,开始由HandlerAdapter适配器处理。
HandlerAdapter会根据Handler来调用真正的处理器开处理请求,并处理相应的业务逻辑。
处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。
ViewResolver会根据逻辑View查找实际的View。
DispaterServlet把返回的Model传给View(视图渲染)。
把View返回给请求者(浏览器)