Spring架构和环境搭建

Spring架构和环境搭建

spring整体架构

Spring架构是一个分层架构,包含一系列功能,并被分为大约20个模块
在这里插入图片描述

Core Container
Core Container 包含Beans、Core、Context、Expression Language模块。Core和Beans是架构的基础部分提供控制反转和依赖注入特性。这里的基础概念是BeanFactory,提供Factory模式的经典实现来消除对程序性单例模式的需要,并真正从程序逻辑中分离出依赖关系和配置

  • Core模块主要包含Spring框架基本的核心工具类,Core模块是其它组件的基本核心

  • Bean模块是所有应用都要用到的,它包含访问配置文件、创建和管理Bean及进行控制反转(IOC)和依赖注入(DI)相关操作的所有类

  • Context模块构建于Core和Beans模块基础之上,提供一种类似于JNDI注册器的架构式的对象访问方法。Context模块继承Bean的特性,为Spring提供大量扩展,添加对国际化、事件传播、资源加载和对Context的透明创建的支持。Context模块同时也支持J2EE的一些特性,例如EJB、JMX和基础的远程处理。ApplicationContext接口是Context模块的关键

  • Expression Language模块提供一个强大的表达式语言用于运行时查询和操作对象。它是JSP2.0规范中定义的unifed expression language的一个扩展。该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文、容器和索引器、逻辑和算术运算、命名变量已经根据对象名从spring IOC容器中检索对象。也支持list投影、选择和list聚合

Data Access/Integration
Data Access/Integration 包含JDBC、ORM、OXM、JMS和Transaction模块

  • JDBC模块提供了一个JDBC抽象层,可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码,这个模块包含了spring对JDBC包装的所有类

  • ORM模块为流行的对象-关系映射API,如JPA、JDO、Hibernate、iBatis等,提供了一个交互层。利用ORM封装包可以混合使用所有Spring提供的特性进行O/R映射

  • OXM提供对Object/XML映射实现的抽象层,Object/XML映射实现包括JAXB、Castor、XMLBeans、JiBX和XStream

  • JMS模块主要包含一些制造和消费消息的特性

  • Transaction模块支持编程和声明性的事务管理,这些事务类必须实现特定接口,并对所有POJO都适用

Web
Web上下文模块建立在应用程序上下文之上,为基于Web应用程序提供了上下文。Web层包含WebSocket、Web、Servlet、portlet模块

  • Web模块提供基础的面向Web的集成特性,如多文件上传,使用Servlet Listeners初始化Ioc容器以及一个面向Web的应用上下文。还包含spring远程支持中Web相关部分

  • Web-Servlet模块包含spring的model-view-controller(MVC)实现。Spring的MVC框架使得模型范围内的代码和Web forms之间能够清楚的分离开,并与Spring框架的其他特性集成在一起

  • Web-Struts模块提供对Struts的支持,使得Spring应用中能与一个典型的Struts Web层集成在一起。该支持在spring3.0是deprecated

  • Web-Portlet模块提供Portlet环境和Web-Servlet模块的MVC实现

AOP

AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现,它可以让你定义例如方法拦截器和切点,从而可以将逻辑代码分开,降低代码的耦合性

通过配置管理特性,Spring AOP模块直接将面向切面编程功能集成到Spring框架中,可以很容易使用Spring框架管理的对象支持AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中

  • Aspects模块提供了对AspectJ的集成支持
  • Instrumentation提供了class instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用

Test

Test模块支持使用JUnit和TestNG对Spring组件进行测试

环境搭建

安装Gradle

对于macOS可以直接使用brew安装

brew install gradle

下载spring

Spring源码通过GitHub管理,使用以下命令拉取

git clone https://github.com/spring-projects/spring-framework.git
已标记关键词 清除标记
相关推荐
<p> <span style="color:#337fe5;"><strong> </strong></span> </p> <p class="MsoNormal"> <span style="color:#000000;font-size:16px;">本课程总计13大章节,115课时,是一门全面的SpringCloud微服务体系化课程。课程共包括</span><span style="color:#000000;font-size:16px;">十三个大章节,涵盖注册中心、网关、熔断、降级、监控、安全、限流等全部体系。</span><span style="color:#000000;font-size:16px;">包含阿里巴巴Nacos,Consul,Spring Cloud Gateway,OAuth2.0 JWT 等主流技术。</span> </p> <p class="MsoNormal"> <span style="color:#000000;font-size:16px;"> </span> </p> <p>   </p> <p> <span style="color:#337fe5;"><strong>[为什么要学习Spring Cloud微服务]</strong></span> </p> <p> <span style="color:#4d555d;"> </span> </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#ffffff;"> <span style="font-family:"background-color:#FFFFFF;"><span style="font-size:12px;">SpringCloud作为主流微服务框架,</span><span style="color:#4d555d;font-family:"background-color:#FFFFFF;font-size:12px;">已成为各互联网公司的首选框架,国内外企业占有率持续攀升,</span><span style="font-size:12px;">是Java工程师的必备技能。</span></span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">就连大名鼎鼎的阿里巴巴</span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">dubbo</span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">也正式更名为</span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">Spring Cloud Alibaba</span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">,成为了</span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">Spring Cloud </span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">微服务中的一个子模块。</span><span style="font-family:"background-color:#FFFFFF;font-size:12px;">Spring Cloud是企业架构转型、个人能力提升、架构师进阶的不二选择。</span><span style="font-family:"background-color:#FFFFFF;"> </span> </p> <p class="ql-long-8780922" style="font-size:11pt;color:#494949;">   </p> <p class="ql-long-8780922" style="font-size:11pt;color:#494949;">   </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#ffffff;"> <span style="color:#337fe5;"><strong>【推荐你学习这门课的理由:<span style="color:#e53333;">知识体系完整+丰富学习资料】</span></strong></span> </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#ffffff;">   </p> <p class="MsoNormal"> 1、本课程总计13大章节,115课时,是一门全面的SpringCloud微服务体系化课程。 </p> <p class="MsoNormal"> 2、课程0基础入门,逐层递进深入,理论和代码相结合。 </p> <p class="MsoNormal"> 3、十三个大章节,涵盖注册中心、网关、熔断、降级、监控、安全、限流等全部体系。 </p> <p class="MsoNormal"> 4、包含阿里巴巴Nacos,Consul,Spring Cloud Gateway,OAuth2.0 JWT 主流技术。 </p> <p style="background:white;"> 5、课程附带230页高清PDF正版课件、Hoxton版本配套项目源码37个、Edgware版本配套项目26个,所有代码均有详细注释。 </p> <p>   </p> <p class="MsoNormal">   </p> <p> <span style="color:#337fe5;">【主讲讲师】</span> </p> <p> <span style="color:#337fe5;"><span style="color:#000000;">尹洪亮Kevin:</span><br /> <span style="color:#000000;">现任职某互联网公司首席架构师,负责系统架构、项目群管理、产品研发工作。</span><br /> <span style="color:#000000;">10余年软件行业经验,具有数百个线上项目实战经验。</span><br /> <span style="color:#000000;">擅长JAVA技术栈、高并发高可用伸缩式微服务架构、DevOps。</span><br /> <span style="color:#000000;">主导研发的蜂巢微服务架构已经成功支撑数百个微服务稳定运行</span></span> </p> <p> <span style="color:#337fe5;"><span style="color:#000000;"> </span></span> </p> <p>   </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#ffffff;"> <span style="color:#337fe5;"><strong>【学完后我将达到什么水平?】</strong></span> </p> <p class="MsoNoSpacing" style="margin-left:18.0pt;text-indent:-18.0pt;"> 1、 对Spring Cloud的各个组件能够熟练配置、开发、部署。 </p> <p class="MsoNoSpacing" style="margin-left:18.0pt;text-indent:-18.0pt;"> 2、 吊打一切关于Spring Cloud微服务的笔试面试题 </p> <p class="MsoNoSpacing" style="margin-left:18.0pt;text-indent:-18.0pt;"> 3、 能够上手搭建十分完整的微服务分布式系统,涵盖服务注册与发现、负载、网关、配置中心、监控、安全、熔断等。 </p> <p class="MsoNoSpacing" style="margin-left:18.0pt;text-indent:-18.0pt;"> 4、 对整个微服务体系架构有十分清晰准确的掌握。 </p> <p>   </p> <p class="ql-long-24357476"> <span style="font-family:""> </span> </p> <p class="MsoListParagraph" style="margin-left:36pt;text-indent:-36pt;" align="left"> <strong><span style="color:#337fe5;">【</span><span style="color:#337fe5;">面向人群</span><span style="color:#337fe5;">】</span></strong> </p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;"> 1、 <span style="color:#4d555d;">不了解微服务是什么,</span>感觉微服务很难、不敢学,<span style="color:#4d555d;">网上资料松散,</span>没有好的学习资料 </p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;"> 2、 这么多年还一直在写SSH、SSM项目,没有更新过自己的知识体系。 </p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;"> 3、 Spring Cloud组件太多,不知道应该重点关注和学习哪些。 </p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;"> 4、 不会搭建微服务项目、依赖项目太多、完全搞不清楚。 </p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;">   </p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;"> <span style="color:#337fe5;"><strong>【课程知识体系图】</strong></span> </p> <p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;"> <span style="color:#337fe5;"><strong><img src="https://img-bss.csdnimg.cn/202007100719132383.png" alt="" /><br /> </strong></span> </p>
<p style="color:#333333;"> <strong> </strong> </p> <p style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <strong><span style="color:#337FE5;">[为什么要学习Spring Cloud微服务]</span> </strong> </p> <p style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <strong><span style="color:#4D555D;"></span> </strong> </p> <p class="ql-long-24357476" style="font-family:"color:#222226;font-size:14px;background-color:#FFFFFF;"> <strong><span style="font-family:"background-color:#FFFFFF;">SpringCloud作为主流微服务框架,<span style="color:#4D555D;">已成为各互联网公司的首选框架,国内外企业占有率持续攀升,</span>是Java工程师的必备技能。</span><span style="font-family:"background-color:#FFFFFF;">就连大名鼎鼎的阿里巴巴</span><span style="font-family:"background-color:#FFFFFF;">dubbo</span><span style="font-family:"background-color:#FFFFFF;">也正式更名为</span><span style="font-family:"background-color:#FFFFFF;">Spring Cloud Alibaba</span><span style="font-family:"background-color:#FFFFFF;">,成为了</span><span style="font-family:"background-color:#FFFFFF;">Spring Cloud </span><span style="font-family:"background-color:#FFFFFF;">微服务中的一个子模块。</span><span style="font-family:"background-color:#FFFFFF;"></span><span style="font-family:"background-color:#FFFFFF;">Spring Cloud是企业架构转型、个人能力提升、架构师进阶的不二选择。</span> </strong> </p> <p style="color:#333333;"> <strong><strong><br /> </strong> </strong> </p> <strong><span style="font-family:"color:#337FE5;font-size:14px;background-color:#FFFFFF;">【推荐你学习这门课的理由】</span><br /> </strong> <p> <br /> </p> <p> <span>1、</span><span style="color:#222226;font-family:"font-size:14px;background-color:#FFFFFF;">本课程总计</span><span style="background-color:#FFFFFF;">29</span><span style="color:#222226;font-family:"font-size:14px;background-color:#FFFFFF;">课时,<span style="color:#333333;">从微服务是什么、能够做什么开始讲起,绝对的零基础入门</span></span><span></span> </p> <p> <span style="background-color:#FFFFFF;">2、<span style="color:#333333;">课程附带全部26个项目源码,230页高清PDF正版课件</span><span style="color:#333333;"></span></span> </p> <p> <span style="background-color:#FFFFFF;"><b><br /> </b></span> </p> <p> <span style="background-color:#FFFFFF;"><b><span style="color:#337FE5;">【课程知识梳理】</span></b></span> </p> <p> <span style="background-color:#FFFFFF;"><b>1、</b></span><span style="color:#333333;">先讲解了什么是单体架构、什么是微服务架构、他们之间有什么区别和联系,各自有什么优缺点。</span> </p> <p> <span style="color:#333333;">2、</span><span style="color:#333333;">从本质入手,使用最简单的Spring Boot搭建微服务,让你认清微服务是一种思想和解决问题的手段,而不是新兴技术。</span> </p> <p style="color:#333333;"> 3、讲解Spring Boot 与Spring Cloud 微服务架构之间的联系,原生的RestTemplate工具,以及Actuator监控端点的使用。 </p> <p style="color:#333333;"> 4、带着微服务所带来的各种优缺点,为大家引入服务发现与注册的概念和原理,从而引入我们的第一个注册中心服务Eureka。 </p> <p style="color:#333333;"> 5、引入负载均衡的理念,区分什么是服务端负载均衡,什么是客户端负载均衡,进而引入Ribbon负载均衡组件的详细使用。 </p> <p style="color:#333333;"> 6、为了解决微服务之间复杂的调用,降低代码的复杂度,我们引入了Feign声明式客户端,让你几行代码搞定服务的远程调用。 </p> <p style="color:#333333;"> 7、最后为大家介绍了整个微服务体系应该包含什么,学习路线是什么,应该学习什么。 </p> <p style="color:#333333;"> <strong><br /> </strong> </p> <p style="color:#333333;"> <strong><span style="color:#337FE5;">【</span><strong><span style="color:#337FE5;">学习方法</span></strong><span style="color:#337FE5;"></span><span style="color:#337FE5;">】</span></strong> </p> <p style="color:#333333;"> 每一节课程均有代码,最好的方式是静下心来,用一天的时间,或者两个半天时间来学习。 </p> <p style="color:#333333;"> 一边听我的讲解,一边使用我提供的项目代码进行观察和运行。 </p> <p style="color:#333333;"> 只要你能跟住我的节奏,你就可以搞定微服务。 </p> <br />
<p style="color:rgb(66,66,66);font-size:14px;"><strong><span style="color:rgb(112,48,160);">SpringCloud是目前流行的微服务框架,在各大互联网公司都有广泛的应用,同时在企业招聘面试时也会要求对微服务技术栈有所了解和掌握。SpringCloud是一套完整的微服务解决方案,基于SpringBoot框架。</span></strong> </p> <p style="color:rgb(66,66,66);font-size:14px;"><br /></p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><strong><span>本课程以通俗易懂的方式讲解SpringCloud技术栈,由浅入深,帮您快速入</span></strong><span><strong><span>门!<span><strong><span>详细讲解了SpringCloud的五大核心组件,同时准备了SpringCloud的案例项目,全面提升微服务的编程功底!</span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><img src="https://img-bss.csdn.net/202003281323408232.png" alt="" /><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><span style="color:#FF0000;font-size:14px;">教学全程采用</span><span style="color:rgb(0,176,80);font-size:14px;">笔记+代码案例</span><span style="color:#FF0000;font-size:14px;">的形式讲解,每个知识点都有详细的讲解,通俗易懂!!!</span></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><img src="https://img-bss.csdn.net/202003281329173164.png" alt="" /><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><span style="color:#FF0000;">部分讲义截图:</span></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><img src="https://img-bss.csdn.net/202003281329395213.png" alt="" /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><img src="https://img-bss.csdn.net/202003281329504761.png" alt="" /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><br /></span></strong></span></span></strong></span></span> </p> <p style="color:rgb(66,66,66);font-size:14px;"><span style="color:rgb(255,0,0);"><span><strong><span><span><strong><span><img src="https://img-bss.csdn.net/202003281330015286.png" alt="" /><br /></span></strong></span></span></strong></span></span> </p>
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页