Spring是一個輕量級的企業級的Java開發框架。主要是用來替代原來更加劇量級的企業級Java技術,好比EJB(Enterprise JavaBean)、Java數據對象(Java Data Object)等。Spring的出現極大簡化了Java開發。html
另外Spring框架是一個一體化的框架,它不只能無縫對接好比Struts、Hibernate等傳統框架,也能很好地同其餘各類企業級開發組件(好比Redis、MQ、Mybatis等)集成。web
Spring發展到如今,已經不單單是一個開發框架了,而是一個生態。Spring框架自己提供了大量可集成到應用中組件,SpringBoot經過「約定優於配置的思想」進一步提升了開發效率,成爲構建微服務應用的最佳選擇,SpringCloud則提供了一套分佈式工具組件,讓構建分佈式系統更加簡單。spring
Spring一直致力於簡化Java開發使命中,爲了下降Java開發的複雜性,Spring經過以下4種關鍵策略來簡化Java開發:編程
依賴注入(DI)安全
對象之間的依賴關係,再也不由對象自身來維護了。而是由spring負責管理了。依賴關係將會由spring負責自動注入到須要的對象中。app
切面編程(AOP)框架
應用中的一些橫切關注點,好比日誌、安全、事務管理等,各個模塊都須要的服務,不該該耦合在各個業務模塊中來。應該單獨抽離出來成爲一個切面,實現解耦。Spring提供了AOP的支持,能夠經過配置實現切面編程。分佈式
Ioc容器(ApplicationContext)微服務
在基於Spring的應用中,你的全部Bean對象都存在於Spring容器中,容器負責建立和管理他們的整個生命週期。ApplicationContext應用上下文對象是Spring容器的一種實現。經過應用上下文對象咱們能夠獲取應用中bean。工具
一圖勝千言
能夠看到spring其實包含了20多個不一樣的模塊。
一、spring核心容器,包含四大模塊,分別是Beans、Core、Context和SpEL。這是構成spring框架的核心組件。
二、再網上是AOP、Aspects切面編程相關組件,Instrunmentation是JVM添加代理,Messaging消息代理。
三、JDBC、ORM、JMS等數據訪問組件。
四、Servlet、WebScoket等web層相關組件。
五、最後spring也提供了測試模塊,能夠集成Junit單元測試等。
一、 固然優先是spring官網,查看官方文檔學習
二、W3Cschool
三、CSDN或博客園等技術文章
原文出處:https://www.cnblogs.com/happyone/p/11992076.html