Spring概要

Spring简介

在2007年,一个基于java 语言的开源框架正式发布,取了一个非常有活力且美好的名字,叫做Spring。它是一个开源的轻量级Java SE(Java标准版本)/Java EE(Java企业版本)开发应用框架,其目的是用于简化企业级应程序开发。Spring 框架不仅能够帮我们管理对象及其依赖关系,具有像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,还可以处理最令人头疼的数据库事务,本身也提供了一套简单的JDBC访问实现,提供了与第三方数据访问框架集成(如Hibernate、JPA),与各种JavaEE技术整合(如Java Mail、任务调度等等),提供了一套自己的Web层框架Spring MVC,而且还能非常方便地与第三方Web框架集成等等,所以,Spring就是一个超级粘合大平台,除了自己提供功能外,还提供粘合其他技术和框架的能力。

Spring四种策略

为了简化开发,spring采取了以下四种关键策略:

1.基于POJO的轻量级和最小侵入性编程

在早期的Struts,WebWork以及其他Java规范和框架中,通过强迫应用继承它们的类或实现它们的接口从而导致应用与框架绑死,导致应用与框架之间的耦合很紧。而Spring则竭力避免因自身的API而弄乱你的代码。它不会强迫你实现Spring规范的接口或继承Spring规范的类。也就是说spring中的pojo对象很纯粹,这个pojo对象不管在spring的应用程序中还是非spring的应用程序中所代表的的意义和功能都是一样的,这对你的项目代码以后的重构是有极大的帮助的。这也正是spring低侵入式的典型表现。

2.通过依赖注入和面向接口实现松耦合

DI(依赖注入)会将所依赖关系自动交给目标对象,而不是让对象本身创建所依赖对象,从而实现对象之间依赖关系轻松解耦。

3.基于切面和惯例进行声明式编程

依赖注入能够让相互协作的软件组织保持松散耦合,而面向切面编程允许你把遍布应用各处的功能分离出来形成可重用的组件。系统由许多不同的组件组成,每一个组件各负责一块特定功能。除了实现自身核心的功能之外,这些组件还经常承担着额外的职责。诸如日志、事务管理和安全这样的系统服务经常融入到自身具有核心业务逻辑的组件中去,这些系统服务通常被称为横切关注点,因为他们会跨越系统的多个组件。AOP能够是这些服务模块化,并以声明的方式将他们应用到它们需要影响的组件中去。所造成的结果就是这些组件会具有更高的内聚性并且会更加关注自身的业务,完全不需要了解涉及系统服务所带来的复杂性。

4.通过切面和模板减少样板式代码

样板式代码就是指通常为了实现通用的和简单的任务,你不得不一遍遍地重复编写这样的代码.其常见范例就是使用JDBC访问数据库查询数据.JMS,JNDI和使用REST服务通常也涉及大量的重复代码。Spring旨在通过模板封装来消除样板式代码。Spring的JdbcTemplate使得执行数据库操作时,避免传统的JDBC样板代码成为了可能。

Spring编程思想

1.OOP(Object Oriented Programming 面向对象编程)

简而言之,一切皆对象。

2.BOP(Bean Oriented Programming 面向bean编程)

Spring 是面向Bean的编程,Bean在Spring中才是真正的主角。Bean在Spring中作用就像Object对OOP的意义一样,Spring中没有Bean也就没有Spring存在的意义。

3.AOP(Aspect Oriented Programming 面向切面编程)

找出多个类中有一定规律的代码,开发时拆开,运行时再合并。面向切面编程,即面向规则编程。AOP的核心构造是方面(切面),它将那些影响多个类的行为封装到可重用的模块中。AOP编程的常用场景有:Authentication(权限认证)、Auto Caching(自动缓存处理)、Error Handling(统一错误处理)、Debugging(调试信息输出)、Logging(日志记录)、Transactions(事务处理)等。

4.IOC(Inversion of Control 控制反转)

IOC将new对象的动作交给Spring管理,并由Spring 保存已创建的对象(IOC容器)。

5.DI/DL(Dependency Injection/Dependency Lookup  依赖注入/依赖查找)

在最早的Spring 中是包含有依赖注入方法和依赖查询的,但因为依赖查询使用频率过低,不久就被Spring 移除了。

注入即赋值,Spring主要有三种注入方式:构造方法、set方法、注解。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值