Spring 开始学习

1 概述

Spring在Java界代表着实际标准。学java不掌握Spring等于高铁时代还在用拖拉机运输人力。

从Spring出现后,Java的开发的周期缩短了;从Spring Boot出现后,Spring的学习周期缩短了。

我们学习也从Spring boot开始。

2 下载STS

学习Spring用什么开发工具最好?Eclipse还是记事本?还是IDEA?还是NetBeans?这些都不是,是Spring官方的STS。下载地址: https://spring.io/tools

 

 

STS提供3个不同平台的版本:Linux、macOS、Windows。选择适合自己平台的版本,解压后就可以使用。

进入sts目录,如我的电脑使用Windows,双击SpringToolSuite4.exe,启动sts。

3 创建工程

我们将创建工作的过程录制成Gif动画,能更生成的说清楚创建过程。

 

创建后的目录结构下:

 

src/main/resources/static用于放置资源文件,如css、js、图片等。

src/main/resources/templates用于放置thymeleaf模板的视图文件,视图文件是.html格式。

src/main/resources/application.properties文件是Spring Boot工程的标准配置文件,用于配置端口、数据库连接配置文件等。

main函数

工程创建后,自动创建一个工程名+Application的java类 SpringMvcHelloApplication。这个类上面有一个注释@SpringBootApplication,它是Spring Boot程序的入口类,将启动main函数。

package com.wangshenghua.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringMvcHelloApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringMvcHelloApplication.class, args);
	}

}

4 创建控制器

接下来创建一个名为GreetingController的控制器,控制器与视图层进行交互。

package com.wangshenghua.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class GreetingController {

	@GetMapping("/greeting")
	public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name,
			Model model) {
		model.addAttribute("name", name); 
		return "greeting"; 
	}
}

@Controller 注释表示这个类是控制器。@GetMapping注释表示这个方法响应get请求,相当servlet 中的 doGet方法。@RequestParam 注释用于获取 请求参数,相当于Servlet的request.getParameter()方法。Model 是模型,用于存储数据,相当于Servlet中的 setAttribute()和 getAttribute存储数据。addAttribute 方法等于Servlet中的setAttribute()方法, Model里面可以放POJO。

return "greeting"; 相当于servlet 中的 reqeust.getRequestDispacher().forword(),用于跳转页面。greeting 指向于src/main/resources/templates/greeting.html文件,后缀省略未写。

5 视图层

thymeleaf模板视图文件放置在src/main/resources/templates目录。视图文件是.html后缀的超文本标记语言。

greeting.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head> 
    <title>Getting Started: Serving Web Content</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>

在html标签引入属性xmlns:th并指定值为http://www.thymeleaf.org,用于启用thymeleaf模板。

th:text用于输出文本,值来源来控制器的mode.addAttribute()方法中的值,展示值同Servlet的EL表达式一样使用${}

th:前缀是thymeleaf模板,相当于我们学的jstl标签的前缀。

6 运行程序

右击工程,在弹出的菜单中选择【Run as】【Spring Boot App】启动工程,在浏览器地址栏输入http://localhost:8080即可访问本程序。

7 总结

本节课程使用Spring Boot和thymeleaf技术实现一个Hello world程序。演示了如何创建Spring boot程序,介绍了Spring boot+ thymeleaf 组合的工程结构,了解这些结构有助于少走弯路;介绍控制器的写法,及控制器如何响应get请求,及获取参数,以及跳转到视图页面;介绍了一个 thymeleaf 视图文件的关键代码。学员位重点掌握创建Spring Boot工程,创建控制器类,创建 thymeleaf 模板视图文件,运行Spring Boot工程。

本节课程源码已经上传到github,可以前往下载