实现不用前端的基于SpringBoot的图书管理系统的例子
时间: 2023-12-23 21:05:42 浏览: 27
好的,以下是一个基于SpringBoot的图书管理系统的例子,该系统不需要前端,只能通过API进行访问和管理:
1. 首先,定义Book类,表示图书信息:
```java
public class Book {
private Long id;
private String title;
private String author;
private String isbn;
private Integer year;
// 省略getter/setter方法
}
```
2. 定义BookRepository接口,用于定义对图书信息的CRUD操作:
```java
public interface BookRepository {
List<Book> findAll();
Book findById(Long id);
Book save(Book book);
void deleteById(Long id);
}
```
3. 实现BookRepository接口,使用List作为数据存储容器:
```java
@Repository
public class BookRepositoryImpl implements BookRepository {
private List<Book> books = new ArrayList<>();
@Override
public List<Book> findAll() {
return books;
}
@Override
public Book findById(Long id) {
return books.stream()
.filter(book -> book.getId().equals(id))
.findFirst()
.orElse(null);
}
@Override
public Book save(Book book) {
if (book.getId() == null) {
book.setId(System.currentTimeMillis());
}
books.add(book);
return book;
}
@Override
public void deleteById(Long id) {
books.removeIf(book -> book.getId().equals(id));
}
}
```
4. 定义BookController类,用于处理对图书信息的API调用:
```java
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookRepository bookRepository;
@GetMapping
public List<Book> findAll() {
return bookRepository.findAll();
}
@GetMapping("/{id}")
public Book findById(@PathVariable Long id) {
return bookRepository.findById(id);
}
@PostMapping
public Book save(@RequestBody Book book) {
return bookRepository.save(book);
}
@DeleteMapping("/{id}")
public void deleteById(@PathVariable Long id) {
bookRepository.deleteById(id);
}
}
```
5. 在SpringBoot应用程序启动类中添加@EnableAutoConfiguration和@ComponentScan注解,启用自动配置和组件扫描:
```java
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan(basePackages = "com.example.library")
public class LibraryApplication {
public static void main(String[] args) {
SpringApplication.run(LibraryApplication.class, args);
}
}
```
6. 运行应用程序,通过API访问和管理图书信息:
- 获取所有图书信息:GET /books
- 获取指定图书信息:GET /books/{id}
- 添加图书信息:POST /books,请求体为JSON格式的Book对象
- 删除指定图书信息:DELETE /books/{id}
以上就是一个基于SpringBoot的图书管理系统的例子,不需要前端,只能通过API进行访问和管理。