springboot与springmvc的区别是什么?
Spring Boot与Spring MVC在Spring家族中各有侧重,Spring Boot主要作为一个简化开发流程和配置的码分工具,而Spring MVC则是码分一个专门用于Web应用开发的MVC框架。
Spring框架以其IoC(依赖注入)和AOP(面向切面编程)为基础,码分衍生出多个扩展产品,码分如Spring Boot。码分放贷小程序的源码Spring Boot通过约定优于配置的码分方式,极大地简化了Spring的码分配置流程,旨在快速开发新一代基于Spring的码分应用。它并非Spring的码分替代品,而是码分增强其开发者体验的辅助工具。
Spring MVC作为Spring框架的码分一部分,提供了轻度耦合的码分开发方式,专注于URL路由、码分Session管理、码分模板引擎和静态资源等web应用开发任务。它并不直接管理项目的搭建过程,而是让Spring Boot来处理这些细节,如自动配置第三方库,使得开发者的注意力集中在业务逻辑上。
在实际应用中,宏汇编源码如果采用Spring Boot,项目初始化和配置文件会有所不同,无需额外安装Tomcat,打包成jar即可运行。然而,核心的业务逻辑和流程实现与使用Spring MVC时并无太大变化。
简单明了的带你理解springboot原理和三大核心注解
Spring Boot伴随Spring 4.0诞生,旨在简化Spring配置和开发过程。通过内置丰富的开发组件和Web应用容器(如tomcat和Jetty),Spring Boot使得开发过程更加简便,cydia源码下载显著提高开发效率。此外,Spring Boot允许开发人员集中精力在业务逻辑代码上,减少对框架的关注。
Spring Boot的核心功能是实现自动配置。一旦有相应的jar包,Spring Boot会自动进行配置,无需像传统Spring框架那样进行繁琐的配置工作。当默认配置不满足需求时,可以自定义配置来替代自动配置类。下载delphi源码Spring Boot还内嵌了Web应用容器,并集成了系统监控等功能,助力快速搭建企业级应用程序。
Spring Boot的三大核心功能包括:
1. 可独立运行的Web项目,无需依赖外部容器,以jar包形式运行。
2. 内嵌Servlet容器,如tomcat、Jetty或Undertow,无需打包war包。web运行源码
3. 简化pom文件配置,仅需添加starter-web依赖。
4. 生成性能指标、健康检查和应用信息等,适用于生产环境。
5. 无需xml文件配置即可实现所有Spring配置。
Spring Boot原理方面,使用IDEA开发工具创建项目时,pom文件会自动引入所需的web模块jar包。其中,@SpringBootApplication类包含多个注解,如@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan,其中三个尤为重要。
@SpringBootConfiguration注解用于读取spring.factories文件。@EnableAutoConfiguration注解使用自动配置机制,自动导入相关依赖,如配置tomcat和springmvc。而@Configuration注解用于配置自动导出,类似xml中的bean配置。
此外,@ComponentScan注解用于指定Spring扫描哪些包下的类,并将其放入bean容器中。
Springboot2(5)WebMvcConfigurer讲解
Spring Boot 2 WebMvcConfigurer 实现详解
请求与视图映射
通过 `ViewController` 实现将请求转至特定视图。例如:通过 `@Override` 和 `addViewControllers` 方法配置视图控制器,让访问特定路径时自动返回指定的视图页面。例如访问 `.0.0.1:/login` 时,直接返回 `login.html` 页面。静态资源映射
使用 `ResourceHandlers` 配置静态资源映射,如、JS、CSS 等。通过 `addResourceHandlers` 方法指定资源的映射路径和存储位置,如返回 `resources/web/home.html` 页面。注意静态资源存放于 WEB-INF 目录下。消息内容转换
配置 `MessageConverter` 实现将 JSON 实体对象转换为 JSON 字符串返回。使用 `FastJson` 作为转换器,实现返回实体类数据的同时,能进行数据的重写和格式化。通过自定义 `FastJsonHttpMessageConverter` 类,设置转换规则,如日期格式、过滤 null 值等。CORS 跨域请求配置
Spring Boot 集成了 CORS 支持,简化了前后端分离的开发。通过 `addCorsMappings` 方法配置 CORS 属性,如允许的请求方法、请求头等。实现如访问 `xt.xmlåweb.xmlï¼å¿«éå¯å¨é¡¹ç®ãè¡¡è¿åspringbootæ¯ç°å¨ç主æµäºãå ·ä½å¦ä½å®ç°æç»ä½ æä¾ä¸ªç½åèªå·±å¦ä¹ å»
ç½é¡µé¾æ¥?éè¦æ³¨åï¼å®å ¨å è´¹
springmvcåspringbootçåºå«é½å±äºspring家æçä¸è¥¿ï¼mvcæ¯å¼åwebæ¹é¢çæ件ãbootå¼åéè¦ä¾èµmvcçã
springbootåmvcåºå«
ä¸ãæ¶æå 容ä¸å
1ãSpringBootï¼å©ç¨å®¹å¨ç®¡ç对象ççå½å¨è¯åæï¼å®¹å¨å¯ä»¥éè¿æ«æXMLæ件æç±»å¤è¿ä¸ç¹å®Java注解æ¥é 置对象ï¼å¼åè å¯ä»¥éè¿ä¾èµæ¥æ¾æä¾èµæ³¨å ¥ä»¿æ饥æ¥è·å¾å¯¹è±¡ã
2ãMVCæ¡æ¶ï¼æ¶æå 容å æ¬è§å¾ã模åãæ§å¶å¨ã
äºãä½ç¨ä¸å
1ãSpringBootï¼ç¨æ¥ç®åæ°Springåºç¨çåå§æ建以åå¼åè¿ç¨ã
2ãMVCæ¡æ¶ï¼ç¨ä¸ç§ä¸å¡é»è¾ãæ°æ®ãçé¢æ¾ç¤ºå离çæ¹æ³ç»ç»ä»£ç ï¼å°ä¸å¡é»è¾èéå°ä¸ä¸ªé¨ä»¶éé¢ï¼å¨æ¹è¿å个æ§åå®å¶çé¢åç¨æ·äº¤äºçåæ¶ï¼ä¸éè¦éæ°ç¼åä¸å¡é»è¾ã
ä¸ãç¹ç¹ä¸å
1ãSpringBootï¼å¯ä»¥å建ç¬ç«çSpringåºç¨ç¨åºï¼å¹¶ä¸åºäºå ¶MavenæGradleæ件ï¼å¯ä»¥å建å¯æ§è¡çJARsåWARsï¼å åµTomcatæJettyçServlet容å¨ï¼å°½å¯è½èªå¨é ç½®Spring容å¨ã
2ãMVCæ¡æ¶ï¼è¦åæ§ä½ãéç¨æ§é«ãçå½å¨æææ¬ä½ãé¨ç½²å¿«ãå¯ç»´æ¤æ§é«ãæå©è½¯ä»¶å·¥ç¨å管çã
åèèµææ¥æºï¼
ç¾åº¦ç¾ç§-MVCæ¡æ¶
ç¾åº¦ç¾ç§-SpringBoot
springbootåspringMVC使ç¨çåé ç½®çåºå«ãSpringBootåªæ¯æ¿è½½è ï¼è¾ å©ä½ ç®å项ç®æ建è¿ç¨çãå¦ææ¿è½½çæ¯WEB项ç®ï¼ä½¿ç¨SpringMVCä½ä¸ºMVCæ¡æ¶ï¼é£ä¹å·¥ä½æµç¨åä½ ä¸é¢æè¿°çæ¯å®å ¨ä¸æ ·çï¼å 为è¿é¨åå·¥ä½æ¯SpringMVCåçèä¸æ¯SpringBootã
对使ç¨è æ¥è¯´ï¼æ¢ç¨SpringBoot以åï¼é¡¹ç®åå§åæ¹æ³åäºï¼é ç½®æ件åäºï¼å¦å¤å°±æ¯ä¸éè¦åç¬å®è£ Tomcatè¿ç±»å®¹å¨æå¡å¨äºï¼mavenæåºjarå ç´æ¥è·èµ·æ¥å°±æ¯ä¸ªç½ç«ï¼ä½ä½ ææ ¸å¿çå³çæ©ä¸å¡é»è¾å®ç°ä¸ä¸å¡æµç¨å®ç°æ²¡æä»»ä½ååã
Spring?MVCå±äºSpringFrameWorkçåç»äº§åï¼å·²ç»èåå¨Spring?Web?Flowéé¢ãSpring?æ¡æ¶æä¾äºæ建?Web?åºç¨ç¨åºçå ¨åè½?MVC?模åã使ç¨?Spring?å¯æå ¥ç?MVC?æ¶æï¼å¯ä»¥éæ©æ¯ä½¿ç¨å ç½®ç?Spring?Web?æ¡æ¶è¿å¯ä»¥æ¯?Struts?è¿æ ·ç?Web?æ¡æ¶ã
åºæ¬èµæ
Springæ¡æ¶æä¾äºæ建Webåºç¨ç¨åºçå ¨åè½MVC模åã使ç¨Springå¯æå ¥çMVCæ¶æï¼å¯ä»¥éæ©æ¯ä½¿ç¨å ç½®çSpringWebæ¡æ¶è¿æ¯Strutsè¿æ ·çWebæ¡æ¶ãéè¿çç¥æ¥å£ï¼Springæ¡æ¶æ¯é«åº¦å¯é ç½®çï¼èä¸å å«å¤ç§è§å¾ææ¯ï¼ä¾å¦JavaServerPagesï¼JSPï¼ææ¯ãVelocityãTilesãiTextåPOIãSpringMVCæ¡æ¶å¹¶ä¸ç¥é使ç¨çè§å¾ï¼æ以ä¸ä¼å¼ºè¿«æ¨åªä½¿ç¨JSPææ¯ãSpringMVCå离äºæ§å¶å¨ã模å对象ãåæ´¾å¨ä»¥åå¤çç¨åºå¯¹è±¡çè§è²ï¼è¿ç§å离让å®ä»¬æ´å®¹æè¿è¡å®å¶ã
ä¼ç¹ä»ç»
Lifecycleforoverridingbinding,validation,etc.ï¼æäºåå ¶å®Viewæ¡æ¶ï¼Titlesçï¼æ ç¼éæï¼éç¨IOC便äºæµè¯ã
å®æ¯ä¸ä¸ªå ¸åçæç§ä¹¦å¼çmvcææ¶ï¼èä¸åstrutsçé½æ¯åç§æè ä¸æ¯å®å ¨åºäºmvcç³»ç»çæ¡æ¶ï¼å¯¹äºåå¦è æè æ³äºè§£mvcç人æ¥è¯´æè§å¾springæ¯æ好çï¼å®çå®ç°å°±æ¯æç§ä¹¦ï¼ç¬¬äºå®åtapestryä¸æ ·æ¯ä¸ä¸ªçº¯æ£çservletç³»ç»ï¼è¿ä¹æ¯å®åtapestryç¸æ¯strutsæ没æçä¼å¿ãæ£å¢èä¸æ¡æ¶æ¬èº«æ代ç ï¼èä¸çèµ·æ¥ä¹ä¸è´¹å²æ¯è¾ç®åå¯ä»¥ç解ã
åç¨æ³¨è§£
MVCå·²ç»æ¯ç°ä»£Webå¼åä¸çä¸ä¸ªå¾éè¦çé¨åï¼ä¸é¢ä»ç»ä¸ä¸SpringMVCçä¸äºä½¿ç¨å¿å¾ã
ä¹åç项ç®æ¯è¾ç®åï¼å¤æ¯ç¨JSPãServlet+JDBCç´æ¥æå®ï¼å»å¹´å¼å§å¨é¡¹ç®ä¸å°è¯ç¨Struts(SpringMVC)+Spring+Hibernate,ä¸¥æ ¼æç §åå±æ¦å¿µé©±å¨é¡¹ç®å¼åï¼å 项ç®éæ±ä¸ç´ä¸æååï¼åè½ä¸ææ©å ãå¢å¼ºï¼ææ¯æ建ä¹å ç»æ¹åå°ç®åæ个稳å®çæ©å¤åºç¨ï¼ä½ä¼äºå¾å¤æåï¼è¿æ¬¡å 对SpringMVCå±è¿è¡ä¸äºä¸ªäººæ»ç»ã
SpringBootä¸SpringMVCçåºå«SpringMVCåSpringBooté½æ弯信æ¯Spring家æçéè¦æåãSpring家æç使å½å°±æ¯ä¸ºäºç®åèçãSpringMVCç®åæ¥åºè½®å¸¸Webå¼åçï¼åæ¥éçèªèº«çåå±ï¼SpringMVCåå¾èè¿å¤æï¼èSpringBootåè¿ä¸æ¥ç®åäºSpringMVCå¼åãSpringMVC为JavaWebèçã
SpringBootæ¯åºäºSpringMVCæ é ç½®æ件(纯Javaï¼å®å ¨æ³¨è§£å)+å ç½®tomcat-embed-coreå®ç°çJavaWebæ¡æ¶ãå½ç¶ï¼SpringBootä¹å¯ä»¥å¼åéWebåºç¨ï¼ç论å¦æ¤ï¼ä½æ¯å®é ä¸ç¨SpringBootå¼åéWebåºç¨çå¾å°ã
æ¯èµ·SpringMVCèè¨ï¼SpringBootæ´é«çº§æ´é«ç«¯ä¸ç¹ï¼SpringMVCåªæ¯SpringBootçåéèå·²ãSpringBootéè¿å¼ç¨spring-boot-starter-webä¾èµï¼æ´åäºSpingMVCæ¡æ¶ã
é¤äºSpringMVCï¼SpringBootè¿æ´åäºå ¶ä»å¤§éç第ä¸æ¹æ¡æ¶ï¼å ¶åçæ¯Maven继æ¿ä¾èµå ³ç³»ãå¨ä½¿ç¨SpringBootçè¿ç¨ä¸ï¼åªéè¦å¼ç¨ä¸ä¸ªjarå ï¼é¹å¹å°±å¯ä»¥éè¿Maven继æ¿çæ¹å¼å¼ç¨å°Spring-aopãSpring-beansãSpring-coreãSpring-webçç¸å ³ä¾èµã
2024-12-24 00:28
2024-12-24 00:18
2024-12-24 00:14
2024-12-24 00:13
2024-12-23 22:50