Spring Boot 学习04-----Spring Boot 开发一个Web应用程序

简介: 接着来学习Spring Boot,很焦虑,很彷徨,但是日子还是要过,生活还是要继续,我始终有一颗不服输的心。

接着来学习Spring Boot,很焦虑,很彷徨,但是日子还是要过,生活还是要继续,我始终有一颗不服输的心。


Spring Boot 非常适合来开发Web应用。你可以通过Tomcat,Jetty,Undertow或者Netty来创建一个安全的HTTP服务器。大多数Web 应用服务通过引入spring-boot-starter-web模块就可以运行得很快。当然,你也可以通过引入spring-boot-starter-webflux来创建一个灵活的Web应用。


Spring Web MVC Framework

Spring Web MVC Framework 简称为 Spring MVC, 作为一种 “model view controller” Web框架,Spring MVC 让你可以创建特殊@Controller或者@RestController beans 来处理HTTP请求。控制器通过@RequestMapping注解来映射HTTP请求。

以下就是使用@RestController,服务器放回JSON数据

@RestController
@RequestMapping(value="/users")
public class MyRestController {
    @RequestMapping(value="/{user}", method=RequestMethod.GET)
    public User getUser(@PathVariable Long user) {
        // ...
    }
    @RequestMapping(value="/{user}/customers", method=RequestMethod.GET)
    List<Customer> getUserCustomers(@PathVariable Long user) {
        // ...
    }
    @RequestMapping(value="/{user}", method=RequestMethod.DELETE)
    public User deleteUser(@PathVariable Long user) {
        // ...
    }
}


Spring MVC 是Spring Framework的一部分。详细的信息可以参考reference documentation


Spring MVC 的自动配置

Spring Boot为Spring MVC提供了自动配置。适用于大多数的应用

这些自动配置在以下的属性中

1. 包括ContentNegotiatingViewResolver以及BeanNameViewResolver

2. 支持静态资源

3. 自动注册Converter,GenericConverter以及Formatter

4. 支持HttpMessageConverters

5. 自动注册MessageCodesResolver

6. 支持静态的index.html

7. 支持定制化的Favicon

8. 自动的使用ConfigurableWebBindingInitializer

如果你想保持Spring Boot MVC的特性以及你想增加额外的MVC 配置(拦截器,格式化,视图控制器以及其他的属性),

你可以添加你自己的@Configuration 注解作为WebMvcConfigurer,替换@EnableWebMvc。如果你希望提供自定义的RequestMappingHandlerMapping,RequestMappingHandlerAdapter或者ExceptionHandlerExceptionResolver,你可以申明一个WebMvcRegistrationsAdapter实例。


HttpMessageConverters

Spring MVC 使用HttpMessageConverters接口来转化HTTP 请求和响应。

例如:实体自动转化为JSON(通过Jackson library)


参考

https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-static-content


相关文章
|
4月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
394 4
|
4月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
4月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
5月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
4376 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
4月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
544 2
|
7月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1155 0
|
8月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
929 0
|
4月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
461 3
|
4月前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
969 2
|
11月前
|
前端开发 Java 数据库
微服务——SpringBoot使用归纳——Spring Boot集成Thymeleaf模板引擎——Thymeleaf 介绍
本课介绍Spring Boot集成Thymeleaf模板引擎。Thymeleaf是一款现代服务器端Java模板引擎,支持Web和独立环境,可实现自然模板开发,便于团队协作。与传统JSP不同,Thymeleaf模板可以直接在浏览器中打开,方便前端人员查看静态原型。通过在HTML标签中添加扩展属性(如`th:text`),Thymeleaf能够在服务运行时动态替换内容,展示数据库中的数据,同时兼容静态页面展示,为开发带来灵活性和便利性。
469 0