帮我写一个springboot前后端交互的demo
时间: 2023-07-06 07:36:27 浏览: 97
SpringBoot前后端分离demo,后台工程+前台页面
3星 · 编辑精心推荐
好的,我可以为您提供一个简单的Spring Boot前后端交互的示例。在这个示例中,我们将创建一个简单的RESTful API,并使用Vue.js作为前端框架。
首先,让我们创建一个Spring Boot应用程序。我们可以使用Spring Initializr来创建应用程序,添加Web和JPA依赖项。
接下来,我们将创建一个简单的实体类,例如User类,用于保存用户的信息。在src/main/java目录下创建一个名为“model”的包,然后创建一个User.java类。该类应该如下所示:
```java
package com.example.demo.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String email;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
```
接下来,我们将创建一个名为“repository”的包,然后创建一个名为“UserRepository”的接口,用于访问数据库。
```java
package com.example.demo.repository;
import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
```
接下来,我们将创建一个名为“controller”的包,然后创建一个UserController类,用于处理RESTful API请求。
```java
package com.example.demo.controller;
import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping
public Iterable<User> getAllUsers() {
return userRepository.findAll();
}
@PostMapping
public ResponseEntity<?> createUser(@RequestBody User user) {
userRepository.save(user);
return ResponseEntity.status(HttpStatus.CREATED).build();
}
}
```
现在,我们已经完成了后端部分的开发。接下来,我们将创建前端部分的代码。
我们将使用Vue.js来创建前端部分。在src/main/resources/static目录下创建一个名为“index.html”的文件,然后添加以下内容:
```html
<!DOCTYPE html>
<html>
<head>
<title>Spring Boot Vue.js Demo</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="app">
<h1>Users</h1>
<ul>
<li v-for="user in users">{{ user.name }} - {{ user.email }}</li>
</ul>
<h2>Add User</h2>
<form v-on:submit.prevent="addUser">
<div>
<label>Name:</label>
<input type="text" v-model="name">
</div>
<div>
<label>Email:</label>
<input type="email" v-model="email">
</div>
<button>Add User</button>
</form>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
users: [],
name: '',
email: ''
},
mounted() {
axios.get('/api/users')
.then(response => (this.users = response.data))
},
methods: {
addUser() {
axios.post('/api/users', {
name: this.name,
email: this.email
})
.then(response => {
this.users.push(response.data)
this.name = ''
this.email = ''
})
}
}
})
</script>
</body>
</html>
```
现在,我们已经完成了前端部分的开发。最后,我们需要配置Spring Boot应用程序以提供静态资源和RESTful API。
打开src/main/java/com/example/demo/DemoApplication.java文件,添加以下内容:
```java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public WebMvcConfigurer webMvcConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
}
};
}
}
```
现在,我们已经完成了整个应用程序的开发。你可以启动应用程序,然后在浏览器中访问http://localhost:8080/来查看效果。
阅读全文