有一段时间没有写过博客了,2020年也没有认真学习过了,这几天准备开始走上正规了,准备做一个项目巩固并学习一下新知识。今天花了一天的时间学习了一下Vue + Spring Boot快速开发一个后端项目,因为之前完全没有接触过Vue,所以写篇博客回顾一下Vue的基本用法。
后端项目结构图
虽然是来复习Vue的,但还是先写后端代码。
- 实体类Book
@Entity
@Data
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String author;
}
- 写完实体类,接下来写我们的DAO层。因为这个项目只要是体验Vue + Spring Boot的开发流程,所以逻辑方面比较简单,JpaRepository里面的方法就足够我们使用了。
public interface BookRepository extends JpaRepository<Book, Integer> {
}
- 写完DAO层,数据要与前端交互,我们开始写Controller层。
@RestController
@RequestMapping("/book")
public class BookController {
@Autowired
private BookRepository repository;
/**
* 查询所有的记录
* @param page
* @param size
* @return
*/
@GetMapping("/findAll/{page}/{size}")
public Page<Book> findAll(@PathVariable("page") Integer page,
@PathVariable("size") Integer size) {
PageRequest pageRequest = PageRequest.of(page, size);
return repository.findAll(pageRequest);
}
/**
* 通过Id查询指定记录
* @param id
* @return
*/
@GetMapping("/findById/{id}")
public Book findById(@PathVariable("id") Integer id) {
return repository.findById(id).get();
}
/**
* 保存一条新的记录
* @param book
* @return
*/
@PostMapping("/save")
public String save(@RequestBody Book book) {
Book result = repository.save(book);
if (result != null) {
return "success";
}else {
return "error";
}
}
/**
* 修改一条记录
* @param book
* @return
*/
@PutMapping("/update")
public String update(@RequestBody Book book) {
Book result = repository.save(book);
if (result != null) {
return "success";
}else {
return "error";
}
}
}
- 最后我们需要写一个配置类来解决Spring Boot跨域问题
public class CrosConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "HEAD", "PUT", "DELETE", "OPTIONS")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
}