Spring Boot可以说,是当前Java领域非常重要的一个框架,可以非常方便的进行Java Web应用的开发。官网提供的一套脚手架可以快速进行项目模板的创建,并引入依赖库。项目初始模板可以访问网站:https://start.spring.io 即可,具体如下所示:
此界面提供了多种配置参数,可以宣称依赖管理的工具是Maven还是Gradle,可以宣传开发的语言是Java\Kotlin还是Groovy。另外,可以配置项目的打包方式,是Jar还是War,并选择JDK的版本,这里选择JDK 8。右边可以添加合适的依赖库,这里添加Spring Web,MySQL和PostgreSQL的驱动库。参数确定后,单击【GENERATE】按钮生成项目模板代码包。
其次,可以将下载的项目模板代码包解压,并用IDEA打开项目,其中的pom.xml代码如下:
< ?xml version="1.0" encoding="UTF-8"?>
< 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.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
< modelVersion>4.0.0< /modelVersion>
< parent>
< groupId>org.springframework.boot< /groupId>
< artifactId>spring-boot-starter-parent< /artifactId>
< version>2.5.1< /version>
< relativePath/> < !-- lookup parent from repository -->
< /parent>
< groupId>com.example< /groupId>
< artifactId>demo< /artifactId>
< version>0.0.1-SNAPSHOT< /version>
< name>demo< /name>
< description>Demo project for Spring Boot< /description>
< properties>
< java.version>1.8< /java.version>
< /properties>
< dependencies>
< dependency>
< groupId>org.springframework.boot< /groupId>
< artifactId>spring-boot-starter-web< /artifactId>
< /dependency>
< dependency>
< groupId>mysql< /groupId>
< artifactId>mysql-connector-java< /artifactId>
< scope>runtime< /scope>
< /dependency>
< dependency>
< groupId>org.postgresql< /groupId>
< artifactId>postgresql< /artifactId>
< scope>runtime< /scope>
< /dependency>
< dependency>
< groupId>org.springframework.boot< /groupId>
< artifactId>spring-boot-starter-test< /artifactId>
< scope>test< /scope>
< /dependency>
< /dependencies>
< build>
< plugins>
< plugin>
< groupId>org.springframework.boot< /groupId>
< artifactId>spring-boot-maven-plugin< /artifactId>
< /plugin>
< /plugins>
< /build>
< /project>
默认情况下,IDEA中的Maven仓库会指向官方的地址,这可能会导致有些Jar包下载的比较慢,或者说有时候会出现无法下载的情况。针对这种情况,建议是配置maven的本地仓库,并设置国内的镜像,比如华为的镜像或者阿里的镜像等。如果有些库还是没有,可以放在本地,并在pom.xml中进行引用。
在项目文件中,添加一个控制器文件,这个控制器controller包位于DemoApplication类的内部,这样SpringBoot可以自动进行类扫码,并加载,否则,可能需要单独进行配置,指定SpringBoot到哪里进行类扫描,不然会出现定义的controller api无法调用的情况。具体的项目结构如下图所示:
HomeController.java是一个典型的Java 后台代码,SpringBoot利用框架提供的注解,非常方便的进行Web服务的开发工作,大大简化了后台代码的开发难度,从而提高了开发效率。示例文件的代码如下:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class HomeController {
@RequestMapping("/login")
public String Login(@RequestParam("username") String username, @RequestParam("password") String password) {
if ("admin".equals(username) && "12345".equals(password)){
return "1";
}else {
return "0";
}
}
}
根据官方文档的说法,@RestController相当于@Controller和@ResponseBody的组合,返回JSON数据时,不需要在方法前加@ResponseBody,但用@RestController注解时,不能返回jsp,html页面。@RequestMapping代码请求时候的API路径映射,这个是唯一的,可以供前台AJAX进行调用。这里类上的@RequestMapping注解和方法上的@RequestMapping组合起来构成一个API的调用路径。@RequestParam("username") String username表示一个Request参数,参数名为username,类型是String,并赋值给变量username。这样前台调用的时候,参数名需要和后台参数名保持一致。
这样启动服务,只需要在浏览器中输入类似如下的网址即可:
http://localhost/api/login?username=admin&password=123