SpringBoot采用了约定大于配置的思想来使得搭建一个Spring应用变得极其简单,本文主要介绍基本的SpringBoot 搭建MVC采用的依赖简介。
这里采用maven项目搭建,不采用springboot自带的搭建插件,一方面是为了更加清晰的介绍基本的SpringBoot 搭建MVC采用的依赖,还有一方面就是社区版的ideal没有spring应用搭建插件(穷,哎)
首先创建一个空的maven项目(eclipse或者ideal均可),添加如下依赖:
下面展示一些 内联代码片
。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<!--指定查找该父项目pom.xml的(相对)路径,这里设定一个空值将始终从仓库中获取,不从本地路径获取-->
<relativePath/>
</parent>
这里采用SpringBoot2.1.1版本作为父项目搭建,为什么要采用父项目为基础搭建,因为这样可以方便我们管理应用需要的其他依赖的版本,maven会自动根据父项目中springboot的版本号来选择合适版本的依赖,避免版本不一致的冲突。
添加完父项目约束后,为了避免中文乱码以及jdk版本问题,这里再添加一些对于jdk版本以及项目字符集编码的约束,如下所示:
<properties>
<!--使用maven编译时,采用jdk1.8版本-->
<maven.compiler.source>8</maven.compiler.source>
<!--使用maven打包时,采用jdk1.8版本-->
<maven.compiler.target>8</maven.compiler.target>
<!--指定项目jdk版本1.8-->
<java.version>1.8</java.version>
<!--指定项目拷贝时的字符编码,及项目整体代码的字符为utf-8-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--指定maven的一些插件输出文件时的字符编码-->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--指定maven编译时的字符-->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
因为我们要搭建SpringBoot的Web应用,所以这里还需要springboot的web启动器,如下所示:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
为了方便使用maven启动和打包、编译项目,这里还需要添加springboot的maven插件依赖:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
到这里,一个最简单的Springboot的web项目依赖就准备好了,接下来编写应用的启动类:
package com.zzm;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ZzmSpringBootLearn001 {
public static void main(String[] args) {
SpringApplication.run(ZzmSpringBootLearn001.class, args);
System.out.println(".........ZzmSpringBootLearn001启动成功.........");
}
}
Springboot的默认启动端口是8080,由于有时候8080端口被用作他用,这里我们手动指定自己的端口让其运行:
首先在src/main/resources目录下面创建application.properties配置文件(这里也可以使用yml文件哈),用以下配置来指定我们自己的端口:
server.port=6969
然后像运行普通的Java程序一样,运行ZzmSpringBootLearn001 类的main方法,即可看到如下日志:
由此可见我们的最简单的SpringBoot的web项目就搭建成功了。
看到这里,有人会问了,web项目连个页面都没有??是的,作为一个web项目,怎么能没有页面呢,这里我们以经典的JSP技术来逐步深入:
链接: JSP(全称Java Server Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
SpringBoot默认是没有依赖JSP的,所以这里我们需要添加JSP的依赖,添加以下依赖到pom文件中:
<!--添加JSP模板依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--引入该dependency的pom中定义的所有dependency定义-->
<scope>provided</scope>
</dependency>
<!--添加JSTL依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
注意:只添加依赖是不够的,还需要下面的几个步骤:
配置文件中添加JSP视图的位置,使得SpringBoot可以找到正确的视图:
# 指定jsp视图的前缀
spring.mvc.view.prefix=/jsp/
# 指定jsp视图的后缀
spring.mvc.view.suffix=.jsp
这样,spring boot就会在src/main/webapp/jsp/(如果项目中没有该路径,需要手动创建,且webapp名称不能变)路径下寻找后缀为.jsp的视图文件。
下面我们在src/main/webapp/jsp/下面创建index.jsp视图文件,内容如下(看习惯了Hello World,换个口味):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>JSP模板</title>
</head>
<body>
<hl>Hello JSP</hl>
<hl>JSP模板</hl>
</body>
</html>
同时在src/main/webapp/jsp/mytest下面再创建myTest.jsp视图文件,内容如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>JSP模板</title>
</head>
<body>
<hl>My Jsp</hl>
</body>
</html>
最后,我们来编写controller,让其指定跳转到这两个视图中:
package com.zzm.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@RequestMapping("/index")
public String index() {
return "index";
}
@GetMapping("myTest")
public String myTest() {
return "mytest/myTest";
}
}
接下来,启动项目,浏览器访问controller下的路径,如下所示:
好了,到这里就结束了,赶紧去亲自试试吧,源代码已经打包上传啦