Spring哪些你应该知道事

本文深入探讨Spring框架的优势,包括数据源管理、ORM映射、AOP编程、框架整合及Bean生命周期管理。阐述了Spring的核心模块及其职责,如SpringCore、SpringBeans、SpringContext等,并详细解释了Bean的生命周期和Ioc/DI概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、为什么要用Spring进行开发(Spring帮我们做了什么)

        这个问题我的切入点是我们没有用Spring的时候如何进行程序开发。( 回想没用Spring的时代我们用纯jdbc也可以建立一个系统,实现相关的功能, 但是我们的操作流程比较多,需要写的代码也比较多,有了Spring后,我们可以简化很多操作)。


              1.1、数据源管理(Spring JDBC)、我们不用像jdbc那样获取连接、关闭连接、

              1.2、数据ORM映射(Spring ORM)、我们可以更加高效的操作我们的实体类,而不需要进行每个字段的转换

              1.3、提供面向切面编程(Spring AOP)、Spring中我们在中引入了Cglib、jdk进行AOP管理、我们可以轻松的将
                 我们需要的操作切入对应的切点,实现日志、事务、权限等功能

              1.4、万能胶一样整合其他框架(ssh 、ssm)等

              1.5、基于Bean的生命周期管理(SpringContext)


 二、Spring有哪些核心模块以及各模块的职责


                      CoreContainer: 
 
                                  1、Spring Core 、

                                  2、Spring Beans、

                                  3、Spring Context、

                                  4、Spring Experssion

                      Web:
                                  1、Spring Web 、

                                  2、Spring Web Mvc、

                                  3、Spring Web Socket

                      DataAccess

                                   1、Spring Jdbc、

                                   2、Spring ORM、

                                   3、JMS

                      Other:

                                   1、AOP

                模块作用:

                      1、SpringCore与SpringBean 实现Ioc,通过接口和类之间的描述将Bean的创建交给Spring容器进行管理

                      2、Spring Context 提供创建Bean的生命周期管理

                      3、Spring JDBC 提供程序与数据库数据访问

                      4、Spring ORM 提供对象和数据库字段关系映射

                      5、AOP实现日志、权限、等

                      6、Spring Web建立在容器之上提供基础支撑(通过Servlet或者Listern初始化Ioc容器)

                      7、Spring Web mvc 实现model -view-controller    

三、Spring 大家关注的三个问题

                      3.1、Bean的生命周期         

                               第一阶段:实例化

                                          实例化是指Bean 从Class到Object

                               第二阶段:初始化前

                                          org.springFrameWork.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization

                              第三阶段: 初始化

                                            org.springFrameWork.bean.InitializingBean#afterPropertiesSet

                              第四阶段初始化后

                                          org.springFrameWork.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization

                            第五阶段:销毁

                                         org.springFrameWork.bean.factory.DisposableBean#destory

                            
                                

                      3.2、Ioc(DI)
                            
                              控制反转:将创建Bean的任务从人手动的创建一个对象变为Spring容器去创建一个对象。我们只用

                         描述对象间的关系即可。


                             依赖注入:依赖注入这里分为两个部分:1、依赖查找 2、依赖注入 ,其中控制反转主要是依赖注入

                         进行实现的,所以控制反转又名依赖注入。

                              1、依赖查找:就是根据各种配置文件、注解找到需要进行容器管理的类和接口信息
                              
                              2、依赖注入:将依赖查找到的类信息封装成BeanDefinition,用BeanFactory进行创建并且注册将

                                    Beandefintion注册到Ioc容器


                                    Ioc容器的初始化:1、定位 2、加载  3、注册

                                  2. 1、定位:

                                                //根据 Xml 配置文件创建 Resource 资源对象,该对象中包含了 BeanDefinition 的信息(想想我们ssm注册数据源database)

                            ClassPathResource resource =new ClassPathResource("application-context.xml");
                             
                                2.2、加载:

                                       将读取到信息形成一个个BeanDefinition

                                2.3、注册

                                       当用户调用getBean的时候进行BeanDefinition的注册


                                 
                             
四、Aop

                       面向切面编程:这是一种编程思想,通过在系统的注入切点实现相关的功能,如日志、权限等,

     在Spring中AOP的实现有两种:1、Jdk 2、Cglib.

 

 

             
 
             


        


      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值