`
wang94777600
  • 浏览: 11474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Springboot快速上手- 第九篇 Web应用开发

阅读更多

1 应用开发基础

1.1 静态文件

1: Spring Boot默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 来配置各种属性,建议使用默认配置方式,提供的静态资源映射,按照优先级顺序如下:

classpath:/META-INF/resources
classpath:/resources
classpath:/static
classpath:/public

2:可以通过修改spring.mvc.static-path-pattern来修改默认的映射路径
3:注意:如果应用将被打包成jar,就不要使用src/main/webapp文件夹。尽管该文件夹是一个共同的标准,但它仅在打包成war的情况下起作用
4:SpringMVC使用ResourceHttpRequestHandler 来进行资源映射,所以可以通过添加自己的WebMvcConfigurerAdapter并覆写addResourceHandlers方法,来改变这个行为,也就是自定义加载静态文件

1.2 自定义加载静态文件示例

@Configuration
public class MyWebMvcConfig extends WebMvcConfigurerAdapter {
 public void addResourceHandlers(ResourceHandlerRegistry registry) {
   registry.addResourceHandler("/static2/**")
   .addResourceLocations("classpath:/static2/");
 super.addResourceHandlers(registry);
 }
}

1:也可以指定外部的路径,直接addResourceLocations指定即可,示例如下:

把.addResourceLocations("classpath:/static/")变换成
.addResourceLocations("file:D:/my/")

1.3 添加拦截器配置

1:先按照SpringMVC的自定义拦截器的写法,写好拦截器类
2:然后在重写WebMvcConfigurerAdapter中的addInterceptors方法,示例如下:

public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/toLogin","/login");
    super.addInterceptors(registry);
}

1.4 国际化

1:定义国际化资源文件,放到resource下面,默认名字是messages.properties
2:在前面的MyWebMvcConfig中添加读取消息文件的bean

@Bean  
public MessageSource messageSource() {  
   ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();  
   messageSource.setBasename("messages");  
   messageSource.setDefaultEncoding("UTF-8");  
   return messageSource;  
}

3:程序里面就可以直接注入MessageSource并使用 @Autowired
private MessageSource messageSource;
4:一样可以向消息文件中传入参数

1.5 支持的模板引擎

Spring Boot支持多种模版引擎包括:FreeMarker、Groovy、Thymeleaf(官方推荐)

1:JSP技术,Spring Boot官方是不推荐的,原因可能有:
(1)Tomcat只支持war的打包方式,不支持可执行的jar
(2)Jetty 嵌套的容器不支持jsp
2:默认的模板配置路径为:src/main/resources/templates

2 Thymeleaf

2.1 概述

Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。

与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。它的功能特性如下:

1:Spring MVC中@Controller中的方法可以直接返回模板名称,接下来Thymeleaf模板引擎会自动进行渲染
2:模板中的表达式支持Spring表达式语言(Spring EL)
3:表单支持,并兼容Spring MVC的数据绑定与验证机制
4:国际化支持

2.2 基本语法和使用

具体的请参见官网:http://www.thymeleaf.org/
升级到使用thymeleaf 3.x:
<thymeleaf.version>3.0.8.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>

3 Springboot集成Jsp

image.png
image.png

 

image.png
image.png

3.1 配置依赖

 <dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
   <scope>provided</scope>
 </dependency>
 <dependency>
   <groupId>javax.servlet</groupId
   <artifactId>jstl</artifactId>
 </dependency>

注意把前面thymeleaf的配置去掉

3.2 配置application.properties

spring.mvc.view.prefix=/WEB-INF/pages/
spring.mvc.view.suffix=.jsp
然后就可以进行jsp开发了,跟以前一样

3.3 部署运行

1:打成jar运行,会报错,因为jsp没有包含进来
2:打成war运行,可以用java –jar的方式来运行
3:如果要部署到外部服务器中:

(1) 添加一个类来继承SpringBootServletInitializer,类似于web.xml文件配置的方式来启动Spring应用上下文,形如:

@Component
public class ServletInitializer extends SpringBootServletInitializer {
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
   return application.sources(Application.class);
 }
}

(2)修改web.xml的头,设置为servlert3以上,否则默认的jsp用1.2的,默认没有开启el,要jsp2.0以上才可以,形如:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" metadata-complete="true">

(3)用maven打完包过后,拷贝后缀为.war.original的这个war,当然要修改一下名字,这个是springboot没有包装内嵌服务器的war包

(4)然后就可以去启动外部的tomcat了

分享到:
评论

相关推荐

    springboot-page-master.zip

    SpringBoot是由Pivotal团队提供的全新框架,其设计目标是使创建独立的、生产级别的基于Spring的应用变得极其简单,它集成了大量常用的第三方库配置(如DataSource、JPA、MongoDB、RabbitMQ等),默认配置能帮助...

    SpringBoot2.0.3-Demo简单的完整示例

    【SpringBoot2.0.3-Demo简单的完整示例】是一个使用SpringBoot 2.0.3版本构建的示例项目,旨在展示如何快速搭建一个功能完备的应用程序。...这是一个很好的起点,帮助新手快速上手SpringBoot开发。

    springmvc转为springboot--干货.docx

    它集成了大量常用的第三方库配置,如:Tomcat、JPA、Thymeleaf等,并提供了默认配置,使得开发者可以快速上手。 2. **Eclipse与STS插件**: Eclipse是一款广泛使用的Java IDE,而Spring Tools Suite (STS) 是...

    springboot-demo

    SpringBoot 是一个由 Pivotal 团队创建的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者可以快速地开始编写代码...

    01-SpringBoot基础篇

    Spring Boot 基础篇的知识点,包括 Spring Boot 简介、快速上手 Spring Boot、Spring Boot 入门案例、parent starter 引导类、内嵌 Tomcat 基础配置、配置属性配置、yaml 文件语法规则、yaml 数据读取、整合第三方...

    springboot-backend-apirest

    标题“springboot-backend-apirest”表明这是一个关于使用Spring Boot构建后端RESTful API的项目。...同时,它也可能包含一些最佳实践和自动化配置的示例,使得开发者能够快速上手并理解Spring Boot的强大之处。

    springboot-master.zip

    这个项目模板可以帮助开发者快速搭建一个集成了Spring MVC、MyBatis和TkMapper的Web应用,并具备分页功能,是学习和开发SpringBoot项目的良好起点。通过研究这个项目,你可以深入理解SpringBoot的自动配置、组件扫描...

    廖师兄两小时学会SpringBoot

    通过"廖师兄两小时学会SpringBoot"的学习资源,你可以系统地了解并掌握上述知识点,快速上手SpringBoot开发,实现高效便捷的Java应用构建。在实际学习过程中,建议结合代码示例和实践项目,巩固理解,提升技能。

    SpringBoot实战(第四版)带目录可以复制粘贴

    《SpringBoot实战(第四版)》是一本专为SpringBoot初学者设计的高清教程,由丁雪丰翻译,提供清晰的目录结构,并且允许文本复制...对于希望快速上手并深入理解SpringBoot的初学者而言,这本书无疑是一份宝贵的资源。

    SpringBoot实战(自带目录)第四版PDF下载

    《SpringBoot实战(自带目录)第四版》是针对Java开发者的一本深度技术指南,主要聚焦于Spring Boot框架的使用和实践。Spring Boot是由Pivotal团队提供的全新框架,旨在简化Spring应用的初始搭建以及开发过程。它...

    SpringBoot项目博客系统-包含前台后台前端后端-适合作为Java学习的第一练手项目.zip

    Spring Boot是Spring框架的一个扩展,旨在简化Spring应用程序的初始搭建以及开发过程,它通过自动化配置、起步依赖等特性,使得开发者能够快速上手。 描述中提到的“包含前台后台前端后端”,意味着这个项目不仅...

    SpringBoot

    它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地构建一个独立运行的、生产级别的基于 Spring 的应用。 **1. 快速启动与约定优于配置** SpringBoot 的核心理念...

    springboot的java配置实例

    SpringBoot是Spring框架的一种简化和快速开发方式,它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速上手构建自己的应用。在这个"springboot的java配置实例"中,...

    a002springboot_idea.zip

    SpringBoot是Java开发领域中的一款热门框架,由Pivotal团队维护,旨在简化Spring应用的初始搭建以及开发过程。这个"a002springboot_idea.zip"压缩包包含了一个已经配置好的SpringBoot项目,适用于使用IntelliJ IDEA...

    springboot jar包

    SpringBoot是一款基于Spring框架的高度模块化、简化化的开发工具,旨在简化Spring应用的初始搭建以及开发过程。它封装了许多常用功能,如嵌入式Web服务器、自动配置、Starters、健康检查、Actuator等,使得开发者...

    很基础的Springboot框架搭建

    SpringBoot 是一个由 Pivotal 团队开发的 Java 框架,旨在简化 Spring 应用程序的初始搭建以及...对于初学者来说,掌握以上知识点将有助于理解 Spring Boot 的核心机制,并能够快速上手开发自己的 Spring Boot 应用。

    spring-boot-2.7.18.zip

    SpringBoot 是一个基于 Java 的轻量级框架,它旨在简化创建独立、生产级别的基于 Spring 应用程序的流程。...总之,SpringBoot 2.7.18 是一个强大且易于上手的框架,能帮助开发者快速构建高质量的 Spring 应用。

    springboot电子书.zip

    - 实践创建第一个Spring Boot应用,逐步熟悉开发流程。 - 深入研究Actuator,掌握应用监控和管理技巧。 9. **进阶话题** - Spring Cloud与Spring Boot结合,实现微服务架构。 - Docker容器化Spring Boot应用,...

    springboot_hello:SpringBoot - 你好

    SpringBoot 是一个由 Pivotal 团队开发的框架,...通过学习这些,你可以快速上手并开发出自己的第一个 Spring Boot 应用。在 "springboot_hello-master" 这个项目中,你可能能找到这些概念的实际应用,从而加深理解。

    SpringBoot实战(第4版)高清版

    Spring Boot是由Pivotal团队开发的,其核心目标是简化Spring应用的初始搭建以及开发过程,使得开发者能够更快速地构建高质量的、生产级别的Java应用。 Spring Boot基于Spring框架,但通过自动配置和“起步依赖”...

Global site tag (gtag.js) - Google Analytics