Spring的江湖地位及基本情况概述

江湖地位

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

基本情况概述

介绍

  • Spring框架提供了一套适用于任何场景的编程和配置模型来开发企业级Java应用程序
  • Spring的一个关键元素是在应用程序级别上提供基础设施支持:Spring专注于为企业级应用铺设“管道”(基础设施),研发团队因此可以集中在应用级别的业务逻辑上,无须与特定的部署环境绑定。

特性

  • 核心技术: 依赖注入、事件、资源处理、国际化、验证、数据绑定、类型转换、SpEL、AOP(面向切面编程)
  • 测试: mock对象、测试上下文框架、SpringMVC测试支持、Web测试客户端
  • 数据访问: 事务支持、DAO支持、JDBC、ORM、XML解析
  • Spring MVC and Spring WebFlux 网络框架
  • 集成: 远程访问、java消息服务至此、JCA、JMX、Email、任务处理、定时处理、缓存
  • 语言:Kotlin、Groovy、其他动态语言

概述

  • 企业级Java开发最流行的框架,通过集成提供一站式解决方案
  • 模块化 功能划分为模块,允许只使用某个模块
  • 轻量级 基本款才2M
  • 无侵入 不需要使用方代码加入额外的代码即可,完全隔离

功能

  • Spring 容器提供了IOC机制,可以创建对象以及管理对象之间的调用关系,避免了硬编码造成的程序耦合
  • 提供了AOP(面向切面编程方式)功能,可以实现很多特定功能
  • 声明式事务控制处理
  • 对JDBC进行了轻量级的封装,可以更加灵活的去操作数据库
  • 提供了MVC设计模式的解决方案
  • 提供了文件上传、定时器等常用工具类
  • 对于其他优秀框架的支持(如:Struts、Hibernate、MyBatis、Quartz等)

体系

  • web
    • WebSocket
    • Servlet
    • Web
    • Portlet
  • Data Access/Integration
    • JDBC
    • ORM
    • OXM
    • JMS
    • Transactions
  • AOP
  • Aspects
  • Instrumentation
  • Messaging
  • Core Container
    • Beans
    • Core
    • Context
    • SpEL

IoC:控制反转

  • 概念:IoC=Inverse of Control,在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。

  • DI:依赖注入:n是实现IOC的一种方式

    • 所谓依赖注入,即在运行期由容器将依赖关系注入到组件之中。
  • 是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法或者构造器进行设定。

  • Spring容器的作用:

    • 实例化对象
    • 分析对象的依赖并注入
  • IoC的好处

    • 无侵入,不需要实现框架指定的接口,因此可以轻松的将组件从Spring中脱离,甚至不需要任何修改
    • 组件间的依赖关系减少,极大改善了代码的可重用性。
    • 便于组件的维护和管理
    • Spring的依赖注入机制,可以在运行期为组件配置所需资源,而无需在编写组件代码时就加以指定,从而在相当程度上降低了组件之间的耦合。{解耦合}
  • 实现步骤

    • 初始化阶段:创建容器,根据配置文件,实例化bean并且做依赖注入
    • 运行时阶段:获取容器中的bean
  • 注解式使用
    常用注解:

    • 标记本类为spring的bean,等价于 xml中
      • @Controller 控制器
      • @Service 服务
      • @Repository 仓库服务DAO
      • @Component 其他组件
    • @Autowired 向容器请求注入一个bean 等价于 property的ref和value
    • @Value 注入值
  • 基于java的配置方式使用

    • @Configuration 表明该类为配置类,等价于applicationContext.xml
    • @Bean 表示该方法创建一个springbean,等价于 ,方法名就是bean的名字,返回值就是bean的实例

AOP(Aspect-Oriented Programming ):面向切面编程

  • 经典应用场景:spring声明式事务管理
  • 跨模块的代码共享:作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值