spring概念

背景:
①在分层架构中,上层调用者与下层实现者之间形成代码级关联,这无疑增加了设计的耦合度;
②大部分第三方框架,例如struts通过强迫使用者继承指定父类或实现指定接口,从而导致应用与框架绑定死板,形成“侵入性”编程;
③散布在应用各个模块中的非功能性重复模块,没有得到充分且灵活的复用;
冲突:这些问题导致Java在做开发的时候(特别是Web开发)越发显得臃肿繁琐
疑问:有没有一个可以轻量化的工具或者框架来解决这些问题呢
回答:spring
1:定义
2:核心
3:spring框架图
4:学习目的
5:IOC底层原理
一:定义
spring是开源的轻量级一站式框架
二:spring核心的两部分
①IOC(控制反转)
②AOP(面向切面编程)
下面来具体并且详细的介绍这两个部分
1:IOC,中文意思是控制反转
所谓控制反转实际上是将创建对象的控制权由程序中的new关键字来创建转换为有spring容器来创建,即创建对象的过程交给了spring容器,而非程序本身创建了
2:AOP,面向切面编程,扩展功能可以不修改源代码实现
三:spring框架图
在这里插入图片描述
简要介绍一下上面框架中各部分模块的用途:
①spring Core:IOC,控制反转,是所有应用模块的核心,只要用到spring容器,都是采用该模块作为基础,主要用来对bean的创建、管理、依赖关系维护,对于spring,所有的框架、对象都被视为bean,被spring容器管理
②spring AOP:面向切面编程,常见的使用场景为声明式事务管理,无须编写代码来进行事务控制、业务层进行业务处理之前、之后、异常时能够统一管理,记录日志等
③spring ORM:对持久层框架进行支持,例如可以整合hibernate、mybatis
④spring DAO:可以直接支持jdbc对数据库操作
⑤spring WEB:可以支持web应用,整合web框架,例如struts
⑥Spring的MVC框架:Spring为构建Web应用提供了一个功能全面的MVC框架。虽然Spring可以很容易地与其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC对控制逻辑和业务对象提供了完全的分离。
常用的开发模式是:

  • WEB 层:Spring MVC.
  • 业务层:Bean 管理:(IOC)
  • 持久层:Spring 的JDBC 模板.ORM 模板用于整合其他的持久层框架
    四:学习目的
    ①方便解耦,简化开发
    Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring 管理
    ②AOP 编程的支持
    Spring 提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
    ③声明式事务的支持
    只需要通过AOP进行配置就可以完成对事务的管理,而无需手动编程
    ④方便程序的测试
    Spring 对Junit4 支持,可以通过注解方便的测试Spring 程序
    ⑤方便集成各种优秀框架
    Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、
    MyBatis、Quartz 等)的直接支持,例如ssm、ssh等
    ⑥降低JavaEE API 的使用难度
    Spring 对JavaEE 开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,
    使这些API 应用难度大大降低
    五:IOC底层原理
    参照:https://blog.csdn.net/z4331016/article/details/78210582
    大概意思是采用工厂模式,结合dom4j解析xml技术,解析出xml中的bean中对应的class属性,然后通过反射,创建出对应的对象
    (1)xml配置文件
    (2)dom4j解决xml
    (3)工厂设计模式
    (4)反射
    在这里插入图片描述
    实际项目中:
    xml对应applicationContext.xml
    工厂对应ApplicationContext
    通过以上两个条件来创建对象
    例如:
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext(“applicationContext.xml”);
    User user = (User)applicationContext.getBean(User.class);
    user.hello();
    延伸:IOC(控制反转)和DI(依赖注入)是相同的概念,控制反转意思是说调用者调用其他对象时,由之前的自身创建对象转变为由容器来创建,依赖注入的意思是说,当一个类中要依赖其他类时,通过依赖注入,可以直接通过容器来直接用该依赖的对象,无须自己创建和维护,简而言之,spring容器实现了对对对象生命周期的管理和依赖关系的维护,实现了解耦的过程
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值