字符数:5959
导读
本文介绍的内容:
(1)用maven构建web工程,并解决一些编译的错误
(2)引入spring boot的依赖,免web.xml用app的方式启动web应用
(3)在main类中定义controller接口快速提供访问url
环境:eclipse Version: Oxygen.3a Release (4.7.3a) Build id: 20180405-1200/ m2e-wtp - Maven Integration for WTP 1.3.3.20170823-1905
1、创建maven project
步骤是,右击package explorer区-> new -> other ->搜索maven -> 选择maven project -> 勾选create a simple project -> 填写几个主要信息,下拉选war -> 完成创建
检查以下几项内容:build path中的jdk/compiler jdk/project facet jdk
在这个版本中maven会检查Web.xml是否存在,在pom.xml中添加以下配置避免:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
如果一直报错:Dynamic Web Module 3.1 requires Java 1.7 or newer,在pom.xml中添加以下内容即可 :
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
2、添加spring boot的相关配置
添加parent依赖,这样在添加子依赖时不需要再指定版本:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath />
</parent>
再添加boot的编译,这样可以直接用app的方式启动web应用:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
</plugin>
</plugins>
</build>
添加web的功能,这样可以开发controller接口:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
完整的pom.xml配置如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.tao</groupId>
<artifactId>seaever</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath />
</parent>
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
</plugin>
</plugins>
</build>
</project>
3、创建启动类文件
使用windows的tree /f命令显示的目录结构如下:
├─src
│ ├─main
│ │ ├─java
│ │ │ └─de
│ │ │ └─tao
│ │ │ └─seaever
│ │ │ │ ExampleSpringBoot.java
│ │ │ │
│ │ │ └─po
│ │ │ User.java
│ │ │
│ │ ├─resources
│ │ └─webapp
│ └─test
│ ├─java
│ └─resources
ExampleSpringBoot.java的内容如下:
package de.tao.seaever;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import de.tao.seaever.po.User;
@RestController
@SpringBootApplication
public class ExampleSpringBoot {
@RequestMapping("/home")
String home() {
return "Hello World!";
}
@RequestMapping("/user")
User getUser() {
User u = new User();
u.setName("tao");
return u;
}
public static void main(String[] args) {
SpringApplication.run(ExampleSpringBoot.class, args);
}
}
User.java的内容如下:
package de.tao.seaever.po;
public class User {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4、 看效果
运行Main类ExampleSpringBoot,访问http://localhost:8080/user ,可以看到内容: {"name":"tao"}
参考自:https://blog.csdn.net/a78270528/article/details/77573818
5、热加载
相关新增文件:
C:\DEV\ECLIPSE-WORKSPACE\SEAEVER\SRC\MAIN\RESOURCES
│ application.properties
│
├─static #约定此目录下的资源可以直接访问
│ ├─html
│ │ index.html #可以直接访问
│ │
│ └─img
│ baby1.jpg #可以直接访问
│
└─templates
index.html #不能直接访问,可能配置`@Controller`注解,在接口上`@RequestMapping("/home")`,然后`return "index";`
注意@Controller不能和@RestController同时用,后者可返回JSON字符串
有时在开发阶段,改了class的代码,想让spring boot自动加载生效,办法在pom.xml中添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
如果静态资源排除在外,不加载,可以设置resources/application.properties:
spring.devtools.restart.enabled=true
spring.devtools.restart.exclude=static/**,templates/**
如果想映射templates里的资源,需要添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
它是一个页面模板框架,支持对html以及其标签的解析。
参考自:https://blog.csdn.net/qq_36481052/article/details/79075214 和 https://blog.csdn.net/long290046464/article/details/76216372