什么是Spring?Spring是什么?

Spring概述:

Spring是一个开源框架,是为了解决企业应用程序开发复杂性而开发的。

从简单性、可测试性和松耦合的角度而言,任何java应用都可以从Spring中受益。

简而言之,Spring就是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

Spring主要特征:

轻量:

从大小和开销两方面而言Spring都是轻量的。此外,Spring是非侵入式的,使用Spring,我们的类还是pojo类,

完全不用继承和实现Spring的类和接口等。也就是说, Spring的应用中不依赖于实现Spirng的特定类。

IOC:

Spring之中最重要的概念之一。Spring通过控制反转技术促进了松耦合。当应用了IOC,

一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找对象。可以认为IOC与JNDI相反,

不是我们自己控制对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它,这就是注入依赖,也是控制反转。

基本上就是对象不用自己手动管理和创建,完全由容器管理,我们只管用就OK了。

AOP:

Spring提供了面向切面的编程支持,AOP将与程序业务无关的内容分离提取出来,而应用对象只实现他们应该做的-即完成业务逻辑-仅此而已。

应用对象并不负责其他的系统级关注点,例如日志或者事务支持。AOP将与业务无关的逻辑横切入真正的逻辑中。

容器:

Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一个容器,你可以单独配置你的每个bean如何被创建,可能基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例,以及它们是如何关联的,同时Spring的容器也是轻量级的。

框架:

Spring可以将简单的组件配置,组合成复杂的应用。在Spring中,应用对象被声明式的组合。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),而用户就有更多的时间和精力去开发应用逻辑。

Sring的这些特征,都能够帮助我们编写更干净、更可管理、更容易测试的代码。接下来看看Spring有什么主要的优点:

借助Spring,通过依赖注入、AOP,来降低业务逻辑之间的耦合,增强系统的可扩展性。

整合其他框架,让已有的技术和框架更加容易使用。例如,利用其对hibernate、SessionFactory、事务管理的封装,更简洁的应用框架Hibernate。

使用Spring而并不完全依赖Spring,开发者可以自由选用Spring框架的部分或者全部。

利用AOP思想,集中处理业务逻辑,减少重复代码,构建优雅的解决方案。

低侵入式设计,代码污染极低。

总结:

Spring致力于J2EE应用的各层的解决方案,而不仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层、持久层。

虽然Spring可以一站式的解决整个项目问题,但是Spring并不想取代那些已有的框架,而是与他们无缝的整合。Spring可以降低各种框架的使用难度,它提供了对各种优秀框架-Struts2、HiernateQuartz等,的直接支持。

使用Spring的主要目的是使J2EE易用和促进好的编程习惯,Spring的目标就是让已有的技术更加易用。

所以,Spring的重要思想就是整合和兼容。

时间: 2024-10-08 15:48:18

什么是Spring?Spring是什么?的相关文章

基于Spring + Spring MVC + Mybatis + shiro 高性能web构建

一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详细的配置,详细的注释,看起来应该很容易懂. 用最合适的技术去实现,并不断追求最佳实践.这就是架构之道. 希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法. 源码地址:https://github.com/starzou/quick4j 点击打开 看我们的项目结构: 是一个典型

SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现

到这里已经写到第12篇了,前11篇基本上把Spring MVC主要的内容都讲了,现在就直接上一个项目吧,希望能对有需要的朋友有一些帮助. 一.首先看一下项目结构: InfrastructureProjects:是抽取出的基础项目,主要封装了一些通用的操作. SpringMVC3Demo:就是管理系统所在的项目. WeiXinAPI:是之前做微信管理平台测试时封装一些操作,如果不需要把该项目移除即可. 注:项目的前端UI框架用的是国外的一个基于Bootstrap框架的开发的Demo,如不需要替换为

Maven+Hibernate+Spring+Spring MVC开发新闻发布系统

使用Maven+Hibernate+Spring+Spring MVC开发新闻发布系统 课程学习地址:http://www.xuetuwuyou.com/course/163 课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍 一.课程用到的软件: 1.jdk 1.8 2.eclipse neon 3.tomcat 8 4.jetty 5.MySQL  6.navicat 9+ 二.课程涉及到的技术点 1.Maven基础 2.Maven高级 3.Hibernate

Spring+Spring MVC+MyBatis实现SSM框架整合详细教程【转】

关于Spring+SpringMVC+Mybatis 整合,见还有不少初学者一头雾水,于是写篇教程,初学者按部就班的来一次,可能就会少走不少弯路了. 一:框架介绍(啰嗦两句,可自行度娘) 1.1:Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的

[转]基于Spring + Spring MVC + Mybatis 高性能web构建

http://blog.csdn.net/zoutongyuan/article/details/41379851/ 一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJs,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详细的配置,详细的注释,看起来应该很容易懂. 用最合适的技术去实现,并不断追求最佳实践.这就是架构之道. 希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法. 源

基于Spring + Spring MVC + Mybatis 高性能web构建

一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJs,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详细的配置,详细的注释,看起来应该很容易懂. 用最合适的技术去实现,并不断追求最佳实践.这就是架构之道. 希望这篇文章能给你们带来一些帮助,同时希望你们可以为这个项目贡献你的想法. 源码地址:https://github.com/starzou/quick4j 点击打开 看我们的项目结构: 是一个典型

Spring+Spring MVC+Hibernate环境搭配

Spring+Spring MVC+Hibernate简称"SSH".Spring容器是Spring的核心,该 容器负责管理spring中的java组件.Spring的核心机制:依赖注入.Hibernate是一个不错的ORM(关系对象映射)框架.Spring+Spring MVC+Hibernate环境搭配步骤: 1.搭建Spring+Hibernate环境(跟ssh搭建步骤一致) (1)加入Spring+Hibernate的架包. 2.搭建SpringMVC环境( 1)添加Sprin

spring spring data jpa save操作事务

整合spring spring data jpa的时候,在save方法上加了@Transactional注解. 此时调用springdatajpa save方法并不会真的把数据提交给数据库,而是缓存起来. 提交事务后数据插入进数据库,要想在事务提交之前避免缓存插入数据库需要在执行完save操作调用flush方法或者直接执行saveAndFlush方法即可

maven/eclipse搭建ssm(spring+spring mvc+mybatis)

maven/eclipse搭建ssm(spring+spring mvc+mybatis) 前言 本文旨在利用maven搭建ssm环境,而关于maven的具体内容,大家可以去阅读<Maven 实战>.其实园内这方面文章已有不少,那么为什么我还要重复造轮子呢?我只是想记录自己的实践过程罢了,附带着给别人以参考.对于别人的博文,看了固然好,要是能付之实践,那就更好了! maven安装 安装过程挺简单的,去apache下载apache-maven的zip包,解压到一个目录下,如下图 接下来配置win

[Java][Spring]Spring事务不起作用 问题汇总

[Java][Spring]Spring事务不起作用 问题汇总 http://blog.csdn.net/szwangdf/article/details/41516239