简介

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. Flask:Flask中使用会话技术

    1.会话技术cookie和session (1)cookie 在网站中,HTTP请求是无状态的.也就是说,即使第一次用户访问服务器并登录成功后,第二次请求服务器依然不知道当前发起请求的是哪个用户.co ...

  2. CentOS 7下MySQL 5.7安装

    5.7和之前版本的MySQL有一些不同,现把CentOS 7下MySQL 5.7安装.配置与应用完整过程记下来,或许对新手来说有用. 本文描述的安装是采用通用的二进制压缩包(linux – Gener ...

  3. 为什么 Flutter 是跨平台开发的终极之选

    跨平台开发是当下最受欢迎.应用最广泛的框架之一.能实现跨平台开发的框架也五花八门,让人眼花缭乱.最流行的跨平台框架有 Xamarin.PhoneGap.Ionic.Titanium.Monaca.Se ...

  4. MinIO 参数解析与限制

    MinIO 参数解析与限制 MinIO server 在默认情况下会将所有配置信息存到 ${HOME}/.minio/config.json 文件中. 以下部分提供每个字段的详细说明以及如何自定义它们 ...

  5. Asp.net Core 系列之--1.事件驱动初探:简单事件总线实现(SimpleEventBus)

    ChuanGoing 2019-08-06  前言 开篇之前,简单说明下随笔原因.在园子里游荡了好久,期间也起过要写一些关于.NET的随笔,因各种原因未能付诸实现. 前段时间拜读daxnet的系列文章 ...

  6. SpringBoot RESTful api

    一.REST简单介绍 REST代表Representational State Transfer,是一种URI风格,是一组架构约束条件和原则.REST风格服务调用就是解析URL请求,将请求由逻辑构建处 ...

  7. javascript关于box2djs和matterjs之间的选择

    javascript关于box2djs和matterjs之间的选择box2djs资料少很多时候需要看c++版本资料 然后转化成js 还有转化成像素坐标不准确 matterjs文档丰富 上手容易 建议用 ...

  8. 【Go 入门学习】第一篇关于 Go 的博客--Go 爬虫初体验

    一.写在前面 其实早就该写这一篇博客了,为什么一直没有写呢?还不是因为忙不过来(实际上只是因为太懒了).不过好了,现在终于要开始写这一篇博客了.在看这篇博客之前,可能需要你对 Go 这门语言有些基本的 ...

  9. 关于find的-perm

    关于find的-perm 参考关于find命令-perm 的用法 总结 有三种用法 find -perm -mode find -perm mode find -perm /mode(find -pe ...

  10. CMDB连接方式

    1.agent agent (放在每台客户端服务器上,定时任务) 脚本演示 # 采集本机的信息 执行命令 import subprocess v1 = subprocess.getoutput('ip ...