`

Spring Boot 笔记 三 (Web开发)

 
阅读更多

一, web开发支持

   Spring-boot-starter-web提供了嵌入tomcat及SpringMVC的依赖

 

二, Thymeleaf模板引擎

 1),基础知识

     Thymeleaf是java的一个类库,是一个xml/xhtml/html5的模板引擎,可作为view层

      可用于替换jsp

  2), 引入

     <html xmlns:th="http://www.thymeleaf.org"><!-- 1-->

         <meta content="text/html;charset=utf-8"/>

        <link th:src="@{xx/xx/bootstrap.css}" rel="stylesheet" />

       <script th:src="@{xx/xx/bootstrap.js}"></script>

    </html>

      备注:1),引入命名空间

               2), 通过"@{}"引入静态资源,在jsp下极易出错

  3),  访问model中的数据

     通过"${}"访问web中的属性

    e.g. <span th:text="${person.name}"></span>

  4), model中的数据迭代

    e.g. <li  th:each="person:${people}">

              <span th:text="${person.age}"></span>

          </li>

  5), 数据判断

    支持<,>==,!=,等springEL表达式

  e.g. <div th:if="${not #lists.isEmpty(people)}"></div>

  6). javascript中访问model

   e.g,

       <script th:inline="javascript">

           var single= [[${singlePerson}]];

       </script>

     备注: 1),通过th:inline="javascirpt" 添加到script标签中

               2), 使用[[${}]] 获取值

               3), 更多: http://www.thymeleaf.org

  7), 与springMVC的集成

     thymeleaf 定义了2个支持类:

            org,thymeleaf.spring4.view.ThymeleafView

            org.thymeleaf.spring4.view.ThymeleafViewResolver(默认)

    SpringTemplateEngine:用来在springMVC下使用 Thymeleaf模板引擎

   TemplateResolver: 用来设置模板引擎(前缀,后缀)

   e.g.

    @Bean

   public TemplateResovler templateResolver(){

    TemplateResovler  templateResolver = new ServletContextTemplateResolver();

     templateResolver.setPrefix("/WEB-INF/templates");

     templateResolver.setSuffix(".html");

     templateResolver.setTemplateMode("HTML5");

    return templateResolver;

   }

 

    @Bean

    public SpringTemplateEngine templateEngine(){

       SpringTemplateEngine templateEngine = new templateEngine();

       templateEngine.setTemplateResolver(templateResolver());

      return templateEngine

    }

 

   @Bean

   public ThymeleafViewResolver thymeleafViewResolver(){

      ThymeleafViewResolver thymeleafViewResolver  = new ThymeleafViewResolver();

       ThymeleafViewResolver.setTemplateEngine(templateEngine());

        return thymeleafViewResolver;

    }

  8). Spring Boot的支持

  Spring Boot通过org.springframework.boot.autoconfigure.thymeleaf包对Thymeleaf自动装配.

   通过ThymeleafProperties来配置thymeleaf,只需在application.properties中以spring.thymeleaf开头来配置

  ThymeleafProperties源码, 后补

    application中示例:

       #thymeleaf start

       spring.thymeleaf.mode=HTML5

       spring.thymeleaf.encoding=UTF-8

       spring.thymeleaf.content-type=text/html

       #开发时关闭缓存,不然没法看到实时页面

       spring.thymeleaf.cache=false

       #thymeleaf end

 

三, Web相关配置

  1, spring boot提供的自动配置

     1),自动配置ViewResolver

       ContentNegotiatingViewResolver: 特殊的ViewResolver,拥有最高优先级

                                                              不是自己处理,而是给其他的viewResolver处理

       BeanNameViewResolver: 去查找Bean返回字符串的view来渲染视图

       InternalResourceViewResolver:  主要通过设置前缀,后缀,及控制器中方法来返回视图名

    2), 自动配置静态资源

    在自动配置类addResourceHandlers方法中定义了以下静态资源的自动配置

      类路径文件: 把/static, /public, /resources, /META-INF/resources里的静态文件直接映射/**.

                           可以通过localhost:8080/**来访问

      webjar: 把webjar的/META-INF/resources/webjars/的静态文件映射为/webjars/**

   3), 自动配置Formatter和Converter 

   4), 自动配置HttpMessageConverters

   5), 静态首页的支持

      静态首页index.html放置目录.META-INF/resources/,resources/, public/,statuc/ 都可以.

  6), 接管spring boot的web配置

   如果默认配置不符合需求,可通过@Configuration,@EnableWebMvc来实现自己的配置

   7), 注册Servlet, Filter, Listener

    声明为 spring bean即可达到效果. 即: @Bean

四, Tomcat配置

   关于Tomcat的所有属性都在org.springframework.boot.autoconfigure.web.ServerProperties做了定义.

  1, 配置Tomcat

  applicaiton.properties添加如下配置

    server.port=8080 #默认为8080

    server.session-timeout=600  #过期时间,以秒为单位

    server.context-path= #配置访问路径,默认为/

    server.tomcat.uri-encoding= #配置tomcat的编码,默认UTF-8

    server.tomcat.compression= #tomcat是否开启压缩,默认为关闭off

  .....

   2, 代码配置tomcat

    注册一个实现EmbeddedServletContainerCustomizer接口的Bean

   3, 替换tomcat

     在pom.xml中,将spring-boot-starter-web的依赖由spring-boot-starter-web改为相应的

    e.g. spring-boot-starter-jetty  (undertow)

 

  3, SSL(Secure Sockets Layer) 配置

     1),生成证书:   可用JDK自带的keytool生成.

      e.g. keytool -genkey -alias tomcat  然后按提示操作

     2), spring boot 配置SSL

          server.port=8443

          server.ssl.key-store=.keystore

          server.ssl.key-store-password=123

          server.ssl.keyStoreType=JKS

     3), http转https

       配置TomcatEmbeddedServletContainerFactory,并添加Tomcat的connector来实现

五, Favicon配置

 关闭:  spring.mvc.favicon.enabled=false

设置自己的Favicon: 将自己额favicon.ico(文件名不能动),放在类路径根目录(/, resources/ public/, static)

                                 等一些目录下都可以

 

六, WebSocket

1, 准备: 添加websocket依赖

2, 广播式

  //todo

3,点对点

  /todo

七, 基于Bootstrap和AngularJs的应用 

 bootstrap 下载地址: http://getbootstrap.com/getting-started/

页面组件支持: http://getbootstrap.com/components

大量js插件: http://getbootstrap.com/javascript/

angularJs: https://angularjs.org/

 示例见网盘:projects/springboot

 

 

分享到:
评论

相关推荐

    Spring Boot 进阶笔记.pdf

    在第三步中,选择自己所需的依赖、Spring Boot 的版本,选择 WEB 开发的所需的 starter。最后,指定项目的名称和路径,即可完成项目的创建。 在创建成功的项目中,有一个 DemoApplication 是项目的启动类,里面有一...

    Spring Boot 进阶笔记(详细全面) 中文PDF完整版.pdf

    2. **起步依赖(Starter POMs)**:Spring Boot 提供了一系列的起步依赖,如 `spring-boot-starter-web`,这些依赖包含了开发特定功能所需的所有依赖,方便开发者快速集成。 3. **内嵌服务器**:Spring Boot 内置了...

    Spring boot 笔记

    ### Spring Boot 笔记 #### 一、Spring Boot 概述与重要性 Spring Boot 是由 Pivotal 团队提供的新一代框架,旨在简化 Spring 应用程序的启动配置及开发流程。它采用了一种独特的方式来减少样板代码的编写,从而...

    Spring Boot 笔记1

    在本篇Spring Boot笔记中,我们将探讨Spring Boot的核心特性、如何创建一个简单的Spring Boot应用以及相关的Maven配置。Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程,提供了一种...

    Spring Boot 2.5.0简单学习pdf资料

    Spring Boot 2.5.0 简单学习pdf 资料 Spring Boot 是一个基于Java的开源框架,旨在简化Spring应用程序的搭建和...Spring Boot 2.5.0 提供了许多有用的特性和工具,能够帮助开发者快速搭建和开发 Java Web 应用程序。

    Spring Boot核心技术-笔记-pdf版.pdf

    Spring Boot对Web开发提供了很好的支持,包括RESTful API开发、模板引擎(如Thymeleaf、Freemarker)、WebSocket等。Spring MVC框架作为核心,使得Web开发变得简单高效。 9. **数据访问** Spring Boot对各种...

    spring-boot 笔记

    Spring Boot提供了大量的自动配置模块,可以自动配置Spring以及第三方库,如Web开发、数据访问、消息服务等。通过starter的依赖,开发者可以不用编写任何配置代码,快速开始开发,极大地提高了开发效率和项目的启动...

    Spring Boot笔记.docx

    引入`spring-boot-starter-web`依赖,它包含了Spring MVC和Tomcat等Web开发所需的核心组件: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-web ``` 4. 编写控制器与...

    Spring Boot 笔记.rar

    Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化基于 Spring 的应用程序初始搭建...通过阅读这些笔记,你可以更好地理解 Spring Boot 如何简化 Java 应用的开发,以及如何利用其特性构建高效、可维护的系统。

    Spring Boot 学习笔记完整教程.pdf

    Spring Boot是一种基于Spring框架的开源项目,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot提供了一种快捷的方式,让开发者能够快速构建独立的、生产级别的基于Spring框架的应用。Spring Boot的核心特性...

    Spring Boot笔记.md

    - **J2EE开发的一站式解决方案**: Spring Boot 为 J2EE 开发提供了一个完整的技术栈,从Web层到数据访问层,再到安全性和事务管理等,都可以通过 Spring Boot 来轻松实现。 #### 2. 微服务架构简介 2014 年,...

    Spring Boot核心技术 - 笔记.rar

    例如,`spring-boot-starter-web`提供了开发Web应用程序所需的基本依赖,包括Spring MVC和Tomcat内嵌服务器。只需在`pom.xml`或`build.gradle`文件中引入相应起步依赖,无需手动管理其他依赖。 **三、内嵌Web服务器...

    Spring 学习笔记《Spring Boot》源码

    Spring Boot 是一个基于 Spring 框架的快速开发工具,旨在简化新 Spring 应用的初始搭建以及开发过程。它预设了许多默认配置,使得开发者能够快速构建功能丰富的应用程序,而无需进行大量的手动配置。 在《Spring ...

    尚硅谷Spring Boot课堂笔记.rar

    笔记接下来会深入到Spring Boot的实战部分,包括Web开发、数据库操作、缓存管理、安全控制等多个方面。 4. **Web开发**:Spring Boot与Spring MVC的集成使得构建RESTful API变得简单。笔记将介绍如何创建Controller...

    Spring Boot核心技术-笔记-pdf版.zip

    3. **嵌入式Web服务器**:Spring Boot支持内嵌Tomcat、Jetty或Undertow等Web服务器,无需额外部署,简化了开发流程。 4. **Actuator**:提供了丰富的端点(如`/info`、`/health`),用于监控和管理应用,包括查看...

    Spring Boot核心技术-笔记_springboot_

    Spring Boot是Java开发中的一个流行框架,它简化了创建独立的、生产级别的基于Spring...通过这份笔记,读者将深入理解Spring Boot的核心概念,并能熟练应用到实际项目中,提升开发效率,实现快速构建高质量的Java应用。

    Spring Boot 笔记 二 (核心)

    在本笔记中,我们将深入探讨Spring Boot的核心特性,以及如何利用这些特性来构建高效且易于维护的项目。 1. **起步依赖(Starter Dependencies)** Spring Boot的起步依赖是其核心特性之一,它允许开发者通过添加...

    Spring Boot学习笔记

    【Spring Boot学习笔记】 Spring Boot是Java开发领域中一个非常受欢迎的框架,它极大地简化了创建独立、生产级别的基于Spring的应用程序的过程。Spring Boot的核心理念是“约定优于配置”,这使得开发者可以快速...

    spring boot基础笔记

    Spring Boot基础笔记知识点详细说明: 1. Spring Boot简介:Spring Boot是一个开源Java框架,用于快速、轻松地创建独立的、生产级别的基于Spring的应用程序。它支持微服务架构,目的是简化新Spring应用的初始搭建...

Global site tag (gtag.js) - Google Analytics