HelloSpring:Spring学习笔记-2020年8月6日10点10分


【Spring框架概述】 Spring是一个开源的Java平台,它为构建企业级应用提供了全面的解决方案。Spring的核心特性可以用于任何Java应用程序,但其最著名的用途是在Java企业版(Java EE)环境中,作为轻量级的容器,它简化了开发并提高了可测试性。Spring框架主要由以下模块组成: 1. **核心容器**:这是Spring的基础,包括Bean工厂、核心工具类、SpEL(Spring Expression Language)、事件、AOP(面向切面编程)和资源。 2. **数据访问/集成**:提供对各种数据库的访问支持,包括JDBC、ORM(对象关系映射)如Hibernate和MyBatis,以及OXM(对象XML映射)。 3. **Web模块**:支持基于MVC模式的Web开发,包括Spring MVC和Spring WebFlux。 4. **AOP模块**:提供了面向切面编程的能力,允许开发者定义“方面”来封装关注点,比如日志、事务管理等。 5. **模块化开发**:Spring还支持模块化的开发,如Spring Security用于安全控制,Spring Batch用于批量处理,Spring Integration用于企业服务总线(ESB)功能。 【Spring Bean的生命周期】 在Spring框架中,Bean是应用程序的核心组件,由Spring容器管理和控制。Bean的生命周期包括以下几个步骤: 1. **实例化**:Spring容器通过无参构造函数创建Bean的实例。 2. **属性注入**:根据配置文件中的依赖关系,将其他Bean或值注入到当前Bean的属性中。 3. **初始化回调**:如果Bean实现了InitializingBean接口,会调用afterPropertiesSet()方法。或者,可以通过@PostConstruct注解的方法进行初始化操作。 4. **自定义初始化**:可以通过定义init-method属性指定一个初始化方法。 5. **正常服务**:Bean现在可以被应用程序使用了。 6. **销毁回调**:当容器关闭时,如果Bean实现了DisposableBean接口,会调用destroy()方法。或者,可以通过@PreDestroy注解的方法进行销毁前的操作。 7. **自定义销毁**:可以定义destroy-method属性指定一个销毁方法。 【Spring的依赖注入(DI)】 依赖注入是Spring的核心特性之一,它允许组件之间的关系在运行时被决定,而不是硬编码在组件内部。DI有两种方式:设值注入和构造器注入。设值注入通过setter方法注入依赖,而构造器注入则是在创建Bean实例时传入依赖。这两种方式都可以通过XML配置或Java注解实现。 【Spring MVC工作原理】 Spring MVC是Spring框架的一部分,用于构建Web应用程序。它的工作流程如下: 1. **请求到达DispatcherServlet**:所有HTTP请求首先被前端控制器DispatcherServlet拦截。 2. **映射处理器**:DispatcherServlet根据请求URL和映射规则找到对应的HandlerMapping。 3. **调用处理器适配器**:DispatcherServlet使用HandlerAdapter来执行实际的处理器(Controller)。 4. **执行Controller**:Controller处理业务逻辑,并可能返回ModelAndView对象,包含视图名和模型数据。 5. **模型与视图解析**:HandlerAdapter根据ModelAndView,找到合适的ViewResolver来解析视图。 6. **渲染视图**:视图负责将数据呈现给用户,可以是JSP、FreeMarker或其他模板引擎。 【Spring Boot简介】 Spring Boot是为了简化Spring应用程序的初始搭建以及开发过程而设计的。它默认配置了很多常见的功能,比如Tomcat服务器、JPA数据源等,让开发者可以快速上手。同时,Spring Boot通过 starter 包使得依赖管理变得简单,通过@SpringBootApplication注解可以轻松启动Spring Boot应用。 以上是对"HelloSpring"这个主题中涉及的Spring框架相关知识点的详细解释,涵盖了Spring的基本架构、Bean生命周期、依赖注入、Spring MVC的工作流程以及Spring Boot的应用场景。这些内容对于理解和实践Spring框架具有重要的指导价值。






































































- 1


- 粉丝: 2031
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【IOS应用源码】分类.zip
- 【IOS应用源码】分享到facebook的API.zip
- 【IOS应用源码】分享action sheet.zip
- 【IOS应用源码】分享最近给别人做的一个项目,供学习交流参考~.zip
- 【IOS应用源码】个人信息输入表(支持表单增删).zip
- 基于心电信号时空特征的QRS波检测算法matlab 2022a仿真:功能介绍及包含内容
- 【IOS应用源码】改进的simpleFTPSampleiphoneftp.orig.zip
- 【IOS应用源码】感恩---奉上大量samplecode(共7部分).zip
- 【IOS应用源码】各种效果的字体.zip
- 【IOS应用源码】给大家分享代码 如何自定义协议从自己的一个app打开另一个app iPhoneURLScheme_Reference.pdf.zip
- 【IOS应用源码】各种效果的字体2.zip
- 【IOS应用源码】共享一个自己做的,采用了cocos2d和chipmunk的DEMOCrayonBallDemo.zip
- 【IOS应用源码】宫格视图(支持横屏)LOGO.zip
- 【IOS应用源码】功能完整的瀑布墙视图效果.zip
- 【IOS应用源码】国家拾取器.zip
- 【IOS应用源码】股票的走势线.zip


