从零开始学Java之spring框架

@spring、springmvc和springboot 阶段学习总结

1.对于spring的理解


如图,Spring是一个轻量级的DI/IOC和AOP容器的开源框架;
Spring提倡以“最少侵入”的方式来管理应用中的代码;
优势:
低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦) 声明式事务管理(基于切面和惯例)
方便集成其他框架(如MyBatis、Hibernate等) 降低 Java 开发难度
Spring核心概念:

• 控制反转(IOC)——传统的 java 开发模式中,当需要一个对象时,我们会自己使用 new 或者 getInstance 等直接或者间接调用构造方法创建一个对象。而在 spring 开发模式中,spring 容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建了,直接调用 spring 提供的对象就可以了,这是控制反转的思想。

• 依赖注入(DI)——spring 使用 javaBean 对象的 set 方法或者带参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程,就是依赖注入的思想

• 面向切面(AOP)——在面向对象编程(oop)思想中,我们将事物纵向抽成一个个的对象。而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事物管理,记录日志等公用操作处理的过程就是面向切面编程的思想。AOP 底层是动态代理,如果是接口采用 JDK 动态代理,如果是类采用 CGLIB 方式实现动态代理。

总的来说Spring是通过容器管理JavaBean的配置和声明周期,在此基础上实现了AOP、IOC的Spring核心功能,其他web框架组件在AOP、IOC的基础上工作,将JavaBean交给Spring来管理。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

2.对于SpringMVC的理解

SpringMVC 是Spring的一个模块,基于MVC的一个框架,无需中间层来整合,用于替代Servlet。
优势:
1.基于组件技术,全部的应用对象,无论是控制器和视图,还是业务对象之类的都是Java组件,并且和Spring提供的其他基础结构紧密集成。
2.不依赖于Servlet API。 可以任意使用各种视图技术,而不仅仅局限于JSP。 支持各种请求资源的映射策略。 易扩展

3.对于SpringBoot的理解

SpringBoot是一个快速开发的框架,能过快速整合第三方框架,整合的基本原理是Maven依赖关系,Maven的集成,完全采用注解化,简化XML配置,内嵌HTTP服务器(Tomcate,jetty),默认嵌入Tomcat,最终以Java应用程序进行执行。
3.1 Spring Boot的理念
核心理念:开箱即用,快速启动
它使用“约定优于配置”的理念让项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,你可以不用或者只需要很少的Spring配置。
3.2 Spring Boot 的优势
1. 自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
2. 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
3. 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
4. Actuator:让你能够深入运行中的Spring Boot应用程序,一套究竟。

总结

  1. Spring 框架就像一个家族,有众多衍生产品例如 springboot、security、springmvc等等。但他们的基础都是Spring的ioc和aop思想开发的. ioc 提供了依赖注入的容器, aop解决了面向横切面编程,然后在此两者的基础上实现了其他延伸产品的高级功能;

  2. springMvc是基于Servlet 的一个MVC框架,主要解决WEB开发的问题,因为Spring的配置非常复杂,各种XML、JavaConfig、servlet处理起来比较繁琐;

3.在使用spring框架的过程中,开发者需要配置很多配置文件, 为了简化开发者的使用,创造性地出现了springBoot框架,他的核心思想是默认优于配置,从而简化了springMvc的配置流程:
3.1 他内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,减轻了部署工作;
3.2 可以自动配置(核心)Spring。SpringBoot将原有的XML配置改为Java配置,将bean注入改为使用注解注入的方式(@Autowire),并将多个xml、properties配置浓缩在一个appliaction.yml配置文件中, 无需再像Spring那样搞一堆繁琐的xml文件的配置。
3.3 提供了一些第三方功能;
3.4 整合了常用依赖,提供的POM可以简化Maven的配置。当我们在pom文件引入核心依赖后,SpringBoot会自引入其他依赖。
简而言之,SpringBoot就是一个基于spring的轻量级,简化配置和开发流程的web整合框架。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值