Springboot的Web开发

devtools/2024/9/22 14:31:36/

Springboot的Web开发 

    在Spring Boot的Web开发中,有许多支持类和配置文件可以帮助我们快速搭建和配置Web应用程序。其中一些重要的支持类和配置文件包括:

  1. ServerPropertiesAutoConfiguration和ServerProperties:这两个类用于配置服务器的相关属性,比如监听端口、上下文路径等。

  2. HttpEncodingAutoConfiguration和HttpEncodingProperties:这两个类用于配置HTTP请求和响应的字符编码方式。

  3. MultipartAutoConfiguration和MultipartProperties:这两个类用于配置文件上传功能。

  4. JacksonHttpMessageConvertersConfiguration:这个类用于配置JSON转换器,方便在Web应用中处理JSON数据。

  5. WebMvcAutoConfiguration和WebMvcProperties:这两个类用于配置Spring MVC的相关属性,比如视图解析器、拦截器等。

另外,Spring Boot还集成了Thymeleaf模板引擎,可以方便地进行页面渲染和数据绑定。           Thymeleaf是一个用于构建动态Web页面的模板引擎,它使用HTML作为模板语言,并提供了强大的表达式语言,使得在页面中访问和操作数据变得非常简单。

在使用Thymeleaf时,我们可以通过引入Thymeleaf的相关依赖来启用它。在Spring Boot中,默认情况下会自动配置Thymeleaf,无需额外的配置。

在Thymeleaf中,我们可以通过在模板中使用特定的语法来访问和展示数据。比如,可以通过在HTML标签的属性中使用Thymeleaf的语法来访问model中的数据,如<p th:text="${user.name}"></p>。这样可以将model中的数据填充到HTML标签中。

除了简单的数据访问外,Thymeleaf还支持数据迭代、条件判断等功能。比如,可以使用Thymeleaf的th:each语法来对集合进行迭代,使用th:if语法来进行条件判断。

此外,在JavaScript中也可以访问Thymeleaf中的数据。可以将model中的数据通过Thymeleaf的属性绑定到JavaScript变量中,然后在JavaScript中使用这些变量。

Web相关配置

  1. 自动配置的ViewResolver:

    • ContentNegotiatingViewResolver:根据请求的媒体类型选择合适的视图解析器。
    • BeanNameViewResolver:根据视图名称查找对应的Bean。
    • InternalResourceViewResolver:用于解析JSP和HTML等模板文件。
  2. 自动配置的静态资源:

    • 类路径文件:静态资源文件可以放在类路径下的/static、/public、/resources或/META-INF/resources目录下。
    • WebJars:可以通过引入WebJars的方式来访问静态资源,例如引入jQuery可以使用 /webjars/jquery/{version}/jquery.js 访问。
  3. 自动配置的Formatter和Converter:

    • Formatter:用于将字符串转换为特定类型的对象,例如将日期字符串转换为日期对象。
    • Converter:用于将一个类型转换为另一个类型,例如将字符串转换为整数。
  4. 自动配置的HttpMessageConverters:

    • HttpMessageConverters:用于处理请求和响应的消息,例如将对象序列化为JSON格式或反序列化JSON为对象。
  5. 静态首页的支持:

    • 默认情况下,Spring Boot会在类路径下的/static或/public目录下查找index.html文件作为静态首页。

除了自动配置,还可以通过编写代码来注册Servlet、Filter和Listener等组件。

你可以通过在配置类中使用@Bean注解来注册Servlet、Filter和Listener,例如:

@Configuration
public class WebConfig {@Beanpublic ServletRegistrationBean<MyServlet> myServletRegistrationBean() {ServletRegistrationBean<MyServlet> registrationBean = new ServletRegistrationBean<>(new MyServlet(), "/myservlet");return registrationBean;}@Beanpublic FilterRegistrationBean<MyFilter> myFilterRegistrationBean() {FilterRegistrationBean<MyFilter> registrationBean = new FilterRegistrationBean<>(new MyFilter());registrationBean.addUrlPatterns("/*");return registrationBean;}@Beanpublic ServletListenerRegistrationBean<MyListener> myListenerRegistrationBean() {ServletListenerRegistrationBean<MyListener> registrationBean = new ServletListenerRegistrationBean<>(new MyListener());return registrationBean;}
}

上述代码中,分别注册了一个Servlet、一个Filter和一个Listener。

Tomcat配置 

      在Spring Boot的Web开发中,Tomcat是默认使用的Servlet容器。但是,你也可以根据自己的需求,使用其他的容器,比如Jetty和Undertow。以下是关于Tomcat配置的一些详细说明。

  1. 代码配置Tomcat:可以在代码中进行Tomcat的配置。你可以通过创建一个继承自SpringBootServletInitializer的类,并重写configure方法,来自定义Tomcat的配置。在configure方法中,你可以使用Tomcat的Java API来进行配置,比如设置端口号、设置连接器等。

  2. 通用配置:在Spring Boot的application.properties(或application.yml)文件中,你可以配置一些通用的Tomcat属性。比如,可以通过设置server.port属性来改变Tomcat的默认端口号。

  3. 新建类的配置:你还可以创建一个新的配置类,用于配置Tomcat相关的属性。这个配置类需要使用@Configuration注解,并在类上使用@Bean注解来定义Tomcat的相关属性。比如,你可以使用@Bean注解来定义Tomcat的连接器(Connector)。

  4. 当前配置文件内配置:除了在application.properties(或application.yml)文件中配置Tomcat属性外,你还可以在当前配置文件中使用@ConfigurationProperties注解来配置Tomcat属性。通过@ConfigurationProperties注解,你可以将属性值直接绑定到一个JavaBean中,并在该JavaBean中进行相关的配置。

  5. 特定配置:有时候,你可能需要为不同的环境(比如开发环境、测试环境、生产环境)配置不同的Tomcat属性。针对这种情况,Spring Boot提供了多个配置文件,比如application-dev.properties、application-prod.properties,你可以在这些特定的配置文件中配置对应环境下的Tomcat属性。

  6. 替换Tomcat:如果你不想使用Tomcat作为Servlet容器,你可以将其替换为其他的容器,比如Jetty或Undertow。你只需要将相应的容器依赖添加到项目中,并在pom.xml文件中将Tomcat依赖排除掉即可。

  7. SSL配置:如果你需要在Tomcat上启用SSL(Secure Sockets Layer)来实现HTTPS,你可以按照以下步骤进行配置:

7.1 生成证书:首先,你需要生成一个SSL证书。可以使用keytool工具生成一个自签名证书,或者购买一个由受信任的证书颁发机构(Certificate Authority,CA)签发的证书。

7.2 Spring Boot配置SSL:在application.properties(或application.yml)文件中,你可以配置一些SSL相关的属性,比如server.ssl.key-store和server.ssl.key-password。通过这些属性,你可以指定SSL证书的位置、密码等信息。

7.3 http转向https:如果你希望将HTTP请求自动重定向到HTTPS,你可以在代码中进行配置。你可以通过创建一个继承自WebMvcConfigurerAdapter的类,并重写addViewControllers方法,来配置重定向规则。在addViewControllers方法中,你可以使用addViewController方法来设置重定向规则。

Favicon配置 

     

在Spring Boot的Web开发中,Favicon(网站图标)是一个小图标,通常显示在浏览器标签页和书签栏上,用来标识网站。Spring Boot默认提供了一个Favicon,它是一个Spring Boot的Logo。

如果你想关闭Favicon,可以在application.properties文件中添加以下配置:

spring.mvc.favicon.enabled=false

这样就会禁用默认的Favicon。

如果你想设置自己的Favicon,可以将自己的图标文件(通常是一个ICO文件)放置在classpath:/static目录下,并命名为favicon.ico。Spring Boot会自动将该图标作为网站的Favicon。

另外,你也可以通过配置文件或Java代码来指定其他路径和文件名作为Favicon。在application.properties文件中添加以下配置:

spring.mvc.favicon.path=/path/to/favicon.ico

或者在启动类中使用以下Java代码:

@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/favicon.ico").addResourceLocations("/path/to/favicon.ico");}
}

    这样就可以设置自己的Favicon了。需要注意的是,为了确保Favicon能够被正确加载,建议将图标文件放置在静态资源目录下,并且命名为favicon.ico。

总结

      Spring Boot是一个开发框架,用于简化Spring应用程序的创建和部署。它采用约定优于配置的原则,通过自动配置和快速启动,提供了一种快速、高效、灵活的方式来开发基于Spring的Web应用程序。

在使用Spring Boot进行Web开发时遵循以下几个步骤:

  1. 创建Spring Boot应用程序:使用Spring Initializr来创建一个新的Spring Boot应用程序。可以选择适合的依赖项,如Web、数据库、安全等。

  2. 配置应用程序属性:在application.properties或application.yml文件中配置应用程序的属性,如数据库连接、端口号等。

  3. 创建控制器:创建一个或多个控制器类来处理HTTP请求。可以使用@Controller注解或@RestController注解。

  4. 定义路由:使用@RequestMapping注解来定义请求的路由。可以根据URL路径、HTTP方法、请求参数等条件来匹配请求。

  5. 处理请求:在控制器类中,编写处理请求的方法。可以使用@RequestParam注解获取请求参数,使用@ResponseBody注解返回JSON格式的数据。

  6. 数据持久化:使用Spring Boot提供的JPA、MyBatis等持久化框架进行数据持久化操作。可以使用@Repository注解标记持久层对象。

  7. 异常处理:使用@ControllerAdvice注解创建一个全局异常处理类,捕获和处理应用程序中抛出的异常。

  8. 页面模板:使用Thymeleaf、Freemarker等模板引擎创建动态页面。可以使用@Controller注解返回视图模板。

  9. 安全认证:使用Spring Security框架进行安全认证和权限控制。可以使用@EnableWebSecurity注解启用Web安全功能。

  10. 部署应用程序:使用内嵌的Tomcat、Jetty等Servlet容器来部署Spring Boot应用程序。可以使用打包插件将应用程序打包为可以独立运行的JAR文件。

    使用Spring Boot进行Web开发可以大大简化应用程序的开发和部署过程。它提供了丰富的功能和灵活的配置选项,可以满足各种不同的应用需求。同时,Spring Boot还支持与其他Spring项目无缝集成,如Spring MVC、Spring Data等。

    


http://www.ppmy.cn/devtools/30792.html

相关文章

118. 杨辉三角

118. 杨辉三角 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[…

YOLOv5白皮书-第Y6周:模型改进

YOLOv5白皮书-第Y6周&#xff1a;模型改进 YOLOv5白皮书-第Y6周&#xff1a;模型改进一、前言二、我的环境三、更正后的yolov5s.yaml四、运行截图![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/23c3ac6b05d74bfcbea5ec238681710d.png)五、总结 YOLOv5白皮书-第Y6周…

Maven 构建 Flink 应用程序的最佳实践(根除各种类冲突/类加载问题)

作为开发者,在构建 Flink 应用程序时的体验真是一言难尽,想必大家都曾遇到过各种 ClassNotFoundException、NoSuchMethodError 以及 Could not find any factory for identifier kafka/jdbc/hive/hudi that implements org.apache.flink.table.factories.DynamicTableFactory…

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之③:数据分析之二(大小模型协同)

一、概述 随着新一代信息技术在产业数字化中的应用&#xff0c;产生了大量多源多模态信息以及响应的信息处理模式&#xff0c;数据孤岛、模型林立的问题也随之产生&#xff0c;使得业务系统臃肿、信息处理和决策效率低下&#xff0c;面对复杂任务及应用场景问题求解效率低。针…

Vue3使用vue-quill富文本编辑器并实现图片自定义上传替换默认base64格式图片

本文介绍在vue3环境下使用vue-quill富文本编辑器&#xff0c;并实现使用自定义上传接口将图片上传至服务器并保存为img标签src为服务器中图片的地址而不是默认的base64格式图片。从而解决富文本编辑器使用base64导致字段超长问题。 1.安装依赖库 npm install vueup/vue-quill…

Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

1 漏洞原理 在Apache Tomcat服务器中&#xff0c;PUT方法通常用于上传文件。攻击者可以通过发送PUT请求&#xff0c;将恶意文件上传到服务器。 当攻击者发送PUT请求时&#xff0c;Tomcat服务器会将请求中的数据写入指定的文件。如果攻击者能够控制文件路径&#xff0c;那么他们…

k8s安装nginx Ingress超详细指南

在本全面的 Ingress 指南中&#xff0c;您将学习如何在 Kubernetes 上设置 Nginx Ingress控制器并使用 DNS 配置 Ingress。 目前有两种 Nginx Ingress 控制器。 kubernetes 社区的 Nginx Ingress 控制器Nginx Inc 开发的 Nginx Ingress 控制器 我们将使用 Kubernetes 社区 N…

24考研双非上岸武汉理工大学电子信息专硕,855考研经验

目录 一、考研择校经验 二、武理考研初试经验 三、武理考研复试经验 一、考研择校经验 我建议学弟学妹们确定院校时没必要一上来就说我一定要考某个院校。其实考哪个学校是要在考研备考的过程中慢慢探索&#xff0c;慢慢研究的&#xff0c;不过最晚9月初一定要确定院校了&a…