springboot和springmvc的区别

springboot和springmvc的区别面试题:你知道springboot和springmvc的区别是什么?之前自己搭过springboot的相关项目,但是如何进行比较,从自我感觉来看就是使用springboot用起来几乎没有配置,个人搭的项目没有用到配置相关的内容。于是我就用了这个回答给面试官,可想而知,这种回答并不好。于是现在百度了相关文章,就把理解写成博客当做笔记。springmvc从两个方面…

大家好,又见面了,我是你们的朋友全栈君。

面试题:你知道springboot和springmvc的区别是什么?

       之前自己搭过springboot的相关项目,但是如何进行比较,从自我感觉来看就是使用springboot用起来几乎没有配置,个人搭的项目没有用到配置相关的内容。于是我就用了这个回答给面试官,可想而知,这种回答并不好。于是现在百度了相关文章,就把理解写成博客当做笔记。

        springmvc从两个方面来看,一是spring,spring的核心中IOC和AOP,IOC就是控制反转(就是将原本由程序代码直接操作的对象的调用权交给容器),目的是为了减低计算机代码的耦合度,所谓的耦合度就是代码中的逻辑关系不要太紧密,避免后面改的人会因为不懂业务逻辑导致改错代码;除此之外也避免我们每次创建新的对象,减少对应的代码量。我们实际代码过程中最常见的方式是依赖注入(DI Dependency Injection),所谓依赖注入就是通过构造注入或者set进行注入。依赖查找(DL Dependency Lookup)这是通过名称和类型查找bean。AOP是面向切面编程,AOP分为五大部分:(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知。(2)JointPoint(连接点):程序执行中明确的点,一般是方法的调用。(3)Advice(通知):AOP在特定的切入点上做出的增强处理,有before,after,afterRunning,afterThrowing,around;(4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式;(5)AOP代理:AOP框架创建的对象,代理就是目标对象的加强,Spring的AOP可以使用JDK代理,也可以使用CGLIB代理,前者基于接口,后者是基于子类。

通知类型:

(1)Before:在目标方法被调用之前做增强处理,@Before只需要指定切入点表达式即可

(2)AfterReturning:在目标方法正常完成后做增强,@AfterReturning除了指定切入点表达式后,还可以指定一个返回值形参名returning,代表目标方法的返回值

(3)AfterThrowing:主要用来处理程序中未处理的异常,@AfterThrowing除了指定切入点表达式后,还可以指定一个throwing的返回值形参名,可以通过该形参名

来访问目标方法中所抛出的异常对象

(4)After:在目标方法完成之后做增强,无论目标方法时候成功完成。@After可以指定一个切入点表达式

(5)Around:环绕通知,在目标方法完成前后做增强处理,环绕通知是最重要的通知类型,像事务,日志等都是环绕通知,注意编程中核心是一个ProceedingJoinPoint

        springboot引入自动配置的概念,让项目配置变得更容易,Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的SpringBoot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。Spring Boot只是承载者,辅助开发者简化项目搭建过程的。如果承载的是WEB项目,使用Spring MVC作为MVC框架,那么工作流程和SpringMVC的是完全一样的,因为这部分工作是Spring MVC做的而不是Spring Boot。

        springmvc与springboot的联系和区别:

        联系:

         Spring最初利用工厂模式(DI)和代理模式解耦应用组件,为了解耦开发了springmvc;而实际开发过程中,经常会使用到注解,程序的样板很多,于是开发了starter,这套就是springboot。

        区别:

       1.springboot是约定大于配置,可以简化spring的配置流程;springmvc是基于servlet的mvc框架,个人感觉少了model中的映射。

       2.以前web应用要使用到tomat服务器启动,而springboot内置服务器容器,通过@SpringBootApplication中注解类中main函数启动即可。例如:

package com.bjsxt;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

/**
 * springBoot整合Listener方式一
 *
 *
 */
@SpringBootApplication
@ServletComponentScan
public class App {

	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}

}

如果您喜欢这篇文章,您的鼓励将是我最大的支持!                                

  springboot和springmvc的区别

 

        

        

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132902.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java web注释_webservice命名空间

    java web注释_webservice命名空间此注示用来标明此java类为某个WebService的实现类或者标明此java接口定义了某个WebService的接口。@WebService有六个参数可以用来配置这个WebService的定义:endpointInterface:定义服务抽象WebService协定的服务端点接口的完整名称,如果注解通过endpointInterface属性引用了某个SEI,那么还必须使用@webservice注解来注解该SEI。name:默认的port名为”实现类名+Port”,binding名为”实现类

    2022年10月16日
    4
  • IDEA这些既好用又好玩的三十多个宝贝插件你还不知道吗?「建议收藏」

    小编整理的一些好用的有趣的插件如果有什么问题,欢迎大家评论,群文件也有这些IDEA插件QQ交流群:99979568IDEA下载插件教程如果无法在线下载插件,文末有我下载好的安装包,以及安装包安装的教程强烈推荐的插件PresentationAssistant快捷键展示Codota代码智能提示AlibabaJavaCodeGuidelines—阿里巴巴Java代码规范Translation-必备的翻译插件SequenceDiagra.

    2022年4月8日
    48
  • JAVA实现贪吃蛇游戏

    JAVA实现贪吃蛇游戏最近在学GUI,然后又有读者希望我写一下相关的实战。刚好我又在B站上找到了一个关于GUI的学习视频,然后里面又刚好有这个实战,我便写了下来。注:代码来源为B站的一个up主:狂神。游戏主启动类:importjavax.swing.*;//游戏主启动类publicclassstartGame{publicstaticvoidmain(String[]args){JFrameframe=newJFrame();frame..

    2022年6月22日
    26
  • 红帽子虚拟机安装教程_红帽子联网后怎么安装gcc

    红帽子虚拟机安装教程_红帽子联网后怎么安装gcc在WindowsXP中安装虚拟机VMware的方法跟普通软件基本一致,需要填入注册密钥.安装完成以后就可以安装红帽子企业版5操作系统了,首先需要新建一台虚拟的计算机,为其分配内存,硬盘空间,CPU等信息,然后选择启动的位置,是硬盘中的ISO文件还是光驱中的启动,然后就可以启动虚拟机进行安装了.在安装红帽子企业版时选择定制安装,作为初学者可以选择把所有的东西都安装上,这…

    2025年11月15日
    6
  • linux 放开8080端口命令_linux开放端口命令

    linux 放开8080端口命令_linux开放端口命令1.centos7版本对防火墙进行加强,不再使用原来的iptables,启用firewall1.查看已开放的端口(默认不开放任何端口)firewall-cmd–list-ports2.开启80端口firewall-cmd–zone=public(作用域)–add-port=80/tcp(端口和访问类型)–permanent(永久生效)firewall-cmd–zone=pub…

    2025年9月25日
    6
  • MAC OS X 系统怎么样?

    朝鲜的IT应用状况并不为外界所熟知,过去媒体纷纷报道,朝鲜已故领导人金正日酷爱苹果电子产品,而最近一份调查报告显示,在朝鲜个人电脑操作系统市场,苹果MACOSX系统位居第一名,遥遥领先微软

    2021年12月23日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号