简介

Spring是一个轻量级的企业级的Java开发框架。主要是用来替代原来更加重量级的企业级Java技术,比如EJB(Enterprise JavaBean)、Java数据对象(Java Data Object)等。Spring的出现极大简化了Java开发。

另外Spring框架是一个一体化的框架,它不仅能无缝对接比如Struts、Hibernate等传统框架,也能很好地同其他各种企业级开发组件(比如Redis、MQ、Mybatis等)集成。

Spring发展到现在,已经不仅仅是一个开发框架了,而是一个生态。Spring框架本身提供了大量可集成到应用中组件,SpringBoot通过“约定优于配置的思想”进一步提高了开发效率,成为构建微服务应用的最佳选择,SpringCloud则提供了一套分布式工具组件,让构建分布式系统更加简单。

Spring就是要简化Java开发

Spring一直致力于简化Java开发使命中,为了降低Java开发的复杂性,Spring通过如下4种关键策略来简化Java开发:

  • 基于POJO的轻量级和最小侵入性编程;
  • 通过依赖注入和面向接口编程实现松耦合;
  • 基于切面和惯例进行声明式编程;
  • 通过切面和模板减少样板式代码。

Spring框架中的几个重要概念

依赖注入(DI)

对象之间的依赖关系,不再由对象自身来维护了。而是由spring负责管理了。依赖关系将会由spring负责自动注入到需要的对象中。

切面编程(AOP)

应用中的一些横切关注点,比如日志、安全、事务管理等,各个模块都需要的服务,不应该耦合在各个业务模块中来。应该单独抽离出来成为一个切面,实现解耦。Spring提供了AOP的支持,可以通过配置实现切面编程。

Ioc容器(ApplicationContext)

在基于Spring的应用中,你的所有Bean对象都存在于Spring容器中,容器负责创建和管理他们的整个生命周期。ApplicationContext应用上下文对象是Spring容器的一种实现。通过应用上下文对象我们可以获取应用中bean。

Spring模块概述

一图胜千言


可以看到spring其实包含了20多个不同的模块。

1、spring核心容器,包含四大模块,分别是Beans、Core、Context和SpEL。这是构成spring框架的核心组件。

2、再网上是AOP、Aspects切面编程相关组件,Instrunmentation是JVM添加代理,Messaging消息代理。

3、JDBC、ORM、JMS等数据访问组件。

4、Servlet、WebScoket等web层相关组件。

5、最后spring也提供了测试模块,可以集成Junit单元测试等。

推荐几个Spring学习途径

1、 当然优先是spring官网,查看官方文档学习

2、W3Cschool


3、CSDN或博客园等技术文章

【10分钟学Spring】:(一)初识Spring框架的更多相关文章

  1. 【10分钟学Spring】:@Profile、@Conditional实现条件化装配

    根据不同的环境来装配不同的bean 企业级开发中,我们一般有多种环境,比如开发环境.测试环境.UAT环境和生产环境.而系统中有些配置是和环境强相关的,比如数据库相关的配置,与其他外部系统的集成等. 如 ...

  2. 【10分钟学Spring】:(二)一文搞懂spring依赖注入(DI)

    Spring最基础的特性就是创建bean.管理bean之间的依赖关系.下面通过具体实例演示该如何装配我们应用中的bean. Spring提供了三种主要的装配机制 在xml中进行显示的配置 在Java中 ...

  3. 带你学够浪:Go语言基础系列 - 10分钟学方法和接口

    文章每周持续更新,原创不易,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 对于一般的语言使用者来说 ,20% 的语言特性就能够满 ...

  4. 这是我见过最简单的博客文只有一张图,Python基础10分钟学完

  5. 10分钟了解 pandas - pandas官方文档译文 [原创]

    10 Minutes to pandas 英文原文:https://pandas.pydata.org/pandas-docs/stable/10min.html 版本:pandas 0.23.4 采 ...

  6. 10分钟详解Spring全家桶7大知识点

    Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...

  7. 初识Spring Boot框架(二)之DIY一个Spring Boot的自动配置

    在上篇博客初识Spring Boot框架中我们初步见识了SpringBoot的方便之处,很多小伙伴可能也会好奇这个Spring Boot是怎么实现自动配置的,那么今天我就带小伙伴我们自己来实现一个简单 ...

  8. 初识 Spring 框架

    初识 Spring 框架可以帮助我们构建规范的.优秀的应用程序,简化烦琐的编码过程. Spring 是一个非常著名的轻量级的企业级开源框架,Spring 的目标是使 Java EE 更易用并促进良好的 ...

  9. 04 Spring:01.Spring框架简介&&02.程序间耦合&&03.Spring的 IOC 和 DI&&08.面向切面编程 AOP&&10.Spring中事务控制

    spring共四天 第一天:spring框架的概述以及spring中基于XML的IOC配置 第二天:spring中基于注解的IOC和ioc的案例 第三天:spring中的aop和基于XML以及注解的A ...

随机推荐

  1. 《JavaScript设计模式与开发实践》-- 代理模式

    详情个人博客:https://shengchangwei.github.io/js-shejimoshi-daili/ 代理模式 1.定义 代理模式:代理模式是为一个对象提供一个代用品或占位符,以便控 ...

  2. opacity层叠问题

    使用了position属性值为 absolute.relative 的层,将会比普通层更高层次.使用了小于1的opacity属性的层,也比普通层更高层次并且和指定 position 的层同层,但是不支 ...

  3. python编程【环境篇】- 如何优雅的管理python的版本

    简介 之前的文章(Python2还是python3 )中我们提到,建议现在大家都采用python3,因为python2在今年年底将不在维护.但在实际的开发和使用python过程中,我们避免不了还得用到 ...

  4. 记录一些html5和css3的一部分属性

    html5 标签1 video:视频 属性: src:视频的url autoplay:视频在就绪后马上播放 controls:向用户显示控件2 audio:音频 属性类似于video3 属性:drag ...

  5. git命令--subtree

    目录 git命令--subtree subtree 主要命令 git subtree add   --prefix=<prefix> <commit> git subtree ...

  6. Vue基础系列(二)——Vue中的methods属性

      写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家指出. 作者简介: 一个不知名的前端开发 ...

  7. mysql双主互为主从配置

    在使用双主互为主从的模式前提是互为主从的两个数据库,表的主键必须是自增的. 环境不多说了 ,多台mysql单实例或单台多实例都可以.多实例的配置请参考:https://www.cnblogs.com/ ...

  8. Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录. 2.业务模块封装 因为现在各种APP的层出不群 ...

  9. MyBatis批量更新动态sql

    <update id="updateDataKetState"> update ${tablespace}.IDEA_DATAKEY_STATE <trim pr ...

  10. Graphviz 画图的一些总结

    Graphviz Graphviz 是一个自动排版的作图软件,可以生成 png pdf 等格式. 一切以官方文档为准,博客只是参考.这里做一个自己学习的记录. dot 语法介绍 部分图形属性介绍 示例 ...