一、快速入门
SpringBoot可以让你更快速地搭建Web应用,它为开发者提供了许多使用时省去了很多配置代码的便利。在这里,我们将通过一个简单的示例来介绍如何使用SpringBoot。
首先,我们需要创建一个新的SpringBoot项目。可以使用Spring官方提供的工具Spring Initializr来创建新项目,也可以使用你喜欢的IDE(如:IntelliJ IDEA)来手动创建。在这里,我们使用Spring Initializr来创建新项目。打开官方网站(https://start.spring.io/)选择项目的基本配置,填写完后选择下载。
下载完成后可以在压缩包中看到生成的项目。我们用IDEA打开,然后找到Application这个入口类。这个类中已经包含了一个启动SpringBoot的方法main()。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
上述代码中,@SpringBootApplication是一个注解,它包含了其他几个注解,可以使得SpringBoot应用的配置变得很简单,也可以想运行一个标准的Spring应用一样运行。
接下来,我们创建一个Controller,定义向请求响应“hello world”的逻辑。
@RestController
public class HelloWorldController {
@RequestMapping("/")
public String hello() {
return "Hello World!";
}
}
在上述代码中,我们使用了@RestController注解来定义这是一个控制器,使用@RequestMapping来将请求与方法进行绑定。访问“/”时就会响应“Hello World!”。
最后,启动SpringBoot应用。在IDE中可以直接运行Application这个类的main()方法启动,也可以使用命令行运行mvn spring-boot:run。启动成功后,访问http://localhost:8080/就能看到“Hello World!”。
二、使用配置文件
SpringBoot提供了一个全局的配置文件application.properties,用来配置各种属性。在这个配置文件中,你可以配置SpringBoot的自动配置、日志、数据源等等。下面,我们将介绍如何创建和使用这个配置文件。
首先,在src/main/resources/文件夹下创建application.properties文件。在这个文件中,你可以定义多个键值对,每个键值对代表一个属性,如下所示:
server.port=8088
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
上述代码中,我们配置了服务端口号为8088,以及MySql数据库的连接信息。
接下来,在代码中使用@Value注解来读取配置文件中的属性值:
@RestController
public class ConfigController {
@Value("${server.port}")
private Integer port;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@RequestMapping("/config")
public Map
getConfig() {
Map
config = new HashMap<>();
config.put("port", port.toString());
config.put("url", url);
config.put("username", username);
config.put("password", password);
return config;
}
}
我们使用@Value注解来注入属性值,然后将这几个属性值封装在Map中进行返回。
启动SpringBoot应用后,访问http://localhost:8080/config就能够看到指定的属性值了。
三、使用RESTful接口
RESTful是一种Web服务的软件架构风格,它关注于建立一套适合各种设备和平台之间通信的标准接口。SpringBoot完全支持RESTful接口,提供了多种方式来创建Web服务。下面,我们将详细介绍如何使用SpringBoot创建RESTful接口。
首先,我们需要添加依赖,在pom.xml文件中添加如下代码:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
上述代码中,我们添加了spring-boot-starter-web这个依赖,它包含了使用SpringBoot创建Web应用的必要组件。
接下来,我们创建一个Controller类,定义RESTful接口:
@RestController
@RequestMapping("/users")
public class UserController {
private static List
userList = new ArrayList<>();
static {
userList.add(new User(1L, "John"));
userList.add(new User(2L, "Amy"));
userList.add(new User(3L, "Mike"));
}
@GetMapping("/")
public List
list() {
return userList;
}
@PostMapping("/")
public User create(@RequestBody User user) {
user.setId(System.currentTimeMillis());
userList.add(user);
return user;
}
@GetMapping("/{id}")
public User get(@PathVariable("id") Long id) {
for(User user : userList) {
if(user.getId() == id) {
return user;
}
}
return null;
}
@PutMapping("/{id}")
public User update(@PathVariable("id") Long id, @RequestBody User user) {
for(User u : userList) {
if(u.getId() == id) {
u.setName(user.getName());
return u;
}
}
return null;
}
@DeleteMapping("/{id}")
public boolean delete(@PathVariable("id") Long id) {
for(User u : userList) {
if(u.getId() == id) {
userList.remove(u);
return true;
}
}
return false;
}
}
在上述代码中,我们通过@RequestMapping声明处理请求的路径,并在具体方法上使用@GetMapping、@PostMapping、@PutMapping、@DeleteMapping等注解来定义HTTP请求的类型。
启动SpringBoot应用,然后就可以使用各种HTTP客户端发送RESTful请求。如,使用curl命令来测试:
curl -X POST -H "Content-Type: application/json" -d '{"name":"Lucy"}' http://localhost:8080/users/
curl http://localhost:8080/users/
curl http://localhost:8080/users/1
curl -X PUT -H "Content-Type: application/json" -d '{"name":"Tom"}' http://localhost:8080/users/1
curl -X DELETE http://localhost:8080/users/1
上述代码是创建、查询、更新、删除用户几个请求的示例,你可以自己使用浏览器或其他的HTTP客户端进行测试。