使用过ssm框架的同学相信都为spring繁杂的配置过程而烦恼,无论是xml配置还是Java配置都无法熟练的记住每一步配置步骤,从而在开发的过程中要花很多时间去处理这些与业务无关的配置。
spring官方也考虑到这个问题,提出了约定大于配置的概念,springboot也由此诞生。
springboot具有以下优点:
- 自动配置
- 起步依赖
- 命令行界面
- Actuator
下面就开始搭建springboot的运行环境
Spring Initializr 点击进入Spring Initializr网页。
根据自己的需求填写相关信息,比如可以选择项目构建方式是Maven或Gradle,语言,版本,项目名以及起步依赖。然后点击Generate Project生成项目压缩包。
解压后可以看到项目结构,如下图所示
1.png
打开Idea,点击File,Open,选择刚刚下载的文件夹中的pom.xml文件。这样就可以加载项目了。我们来看一看pom.xml文件,熟悉Maven的同学都知道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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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>
接下来我们开始编写控制器,新建Controller包,新建HelloController类,并编写一下代码。
package com.example.demo.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class HelloController {
@RequestMapping("/hello")
public Map<String, Integer> hello()
{
Map<String,Integer> score = new HashMap<>();
score.put("yangkun",100);
score.put("xiaoming",90);
return score;
}
}
与以往不同的是这里用到了RestController注解,与Controller的区别是RestController相当于Controller+ResponseBody,这样控制器返回的将是json字符,而不会跳转到同名视图。
最后我们来看一下SpingBoot的启动类
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args){
SpringApplication.run(DemoApplication.class,args);
}
}
一个SpingBootApplication注解为我们做了所有的配置,并且SpringBoot还内嵌了servlet容器比如Tomcat,我们不用再将项目部署到web容器中,而是像普通Java程序一样直接在Main方法中运行就可以了。
可以看到SpringBoot启动完成,默认在8080端口监听服务。
2.png
最后我们在浏览器中输入网址,即可看到我们输出的Json内容。
3.png
网友评论