前端同学学习SpringBoot的第 4 天

55 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

前言

先前我们利用SpringBoot框架搭建了一个十分简易的登入系统,今天我们来尝试一下,通过SpringBoot来编写API。

实践

获取所有用户,对应的就是查询数据库user表中的所有数据。

首先我们再我们的UserService 中定义好我们的方法(获取所有用户)。

public interfaceUserService {
    List<UserBean> getAllUsers();
}

我们是通过SQL语句查询数据库来得到所有的用户数据的,所以接下里我们就来编写我们的SQL语句,我们需要先在 UserMapper.java 方法中定义好我们的数据。

public interface UserMapper {
    List<UserBean> getAllUsers();
}

然后在 UserMapper.xml 中编写实际的SQL查询语句

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "<http://mybatis.org/dtd/mybatis-3-mapper.dtd>" >
<mapper namespace="com.li.test.mapper.UserMapper">

    <select id="getAllUsers" resultType="com.li.test.bean.UserBean">
        SELECT * FROM user
    </select>

</mapper>

这里id就是指我们在UserMapper.java中定义的方法名,resultType就是指返回的类型,而这边我们需要返回的是List<UserBean>,但是我们还是只需要定义UserBean的类型即可,不要管List,至于为什么,这里就先遗留一下,日后再去展开分析学习。

SQL语句写好了以后,我们就要去实现具体的业务逻辑了,也就是service的具体实现类,这里为UserServiceImpl.java

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<UserBean> getAllUsers() {
        return userMapper.getAllUsers();
    }
}

其实就是调用我们刚刚在userMapper中编写的getAllUsers()方法来具体实现getAllUsers()方法。

接着我们先建一个 UserController 来真正调用处理 UserService 中的方法。

@RestController
public class UserController {

    @Autowired
    UserService userService;

    @RequestMapping("/hw")
    public String home() {
        return "Hello World!";
    }

    @GetMapping("/users")
    public List<UserBean> getAllUsers() {
        return userService.getAllUsers();
    }

}

不知你有没有发现,这里与别的Controller有一点不用的是,这里用的是@RestController注解,而我们之前都是使用@Controller注解,这里就可以具体展开分析学习一下,但是我们是刚入门,先将Demo跑通先,日后回头学。现在只需要知道,当我们需要输出数据,也就是开发API接口时,我们需要使用@RestController注解。

OK,到了这里,我们已经编写好所有数据了,接下来就需要检测一下我们的代码是否正确。

通过编写测试用例来检查一下我们的代码是否编写正确,测试的就是 UserServicegetAllUsers() 方法,我们尝试拿到List<UserBean>,然后通过日志输出其用户名与密码。

@RunWith(SpringRunner.class)
@SpringBootTest
class TestApplicationTests {

	@Autowired
	UserService userService;

	@Test
	void contextLoads() {
		System.out.println("*************** test UserController *************");
		List<UserBean> userList = userService.getAllUsers();
		for (int i = 0; i < userList.size(); i++) {
			userList.get(i).getName();
			System.out.println(userList.get(i).getName() + " " + userList.get(i).getPassword());
		}

	}

}

运行测试案例TestApplicationTests

输出:

*************** test UserController *************
stephen 123456
taylor a123456
li 123456

很完美的达到预期,接下来我们运行项目,然后通过PostMan工具来访问接口http://127.0.0.1:8080/users,查看所有用户。

结果如下:

截屏2022-06-20 下午6.05.35.png

总结

今天我们尝试利用SpringBoot来开发API接口,我们前端人员终于可以自己给自己写接口啦,哈哈。接下来将继续尝试利用SpringBoot框架来开发RESTful API。