springboot单体应用的模块化开发代码例子
时间: 2023-11-16 21:47:33 浏览: 203
Spring Boot 是一个非常流行的 Java 开发框架,它支持模块化开发,可以使应用程序更加易于维护和扩展。下面是一个简单的 Spring Boot 单体应用的模块化开发代码例子:
1. 创建一个 Maven 项目,并添加以下依赖:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
```
2. 创建一个主应用程序类,使用 `@SpringBootApplication` 注解标记,如下:
```java
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
```
3. 创建一个名为 `user-service` 的模块,添加以下依赖:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
```
4. 在 `user-service` 模块中创建一个 `UserController` 类,提供用户相关的 RESTful API:
```java
@RestController
@RequestMapping("/users")
public class UserController {
private final UserRepository userRepository;
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userRepository.findById(id).orElseThrow(() -> new UserNotFoundException(id));
}
@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
@PutMapping("/{id}")
public User updateUser(@RequestBody User newUser, @PathVariable Long id) {
return userRepository.findById(id)
.map(user -> {
user.setName(newUser.getName());
user.setEmail(newUser.getEmail());
return userRepository.save(user);
})
.orElseThrow(() -> new UserNotFoundException(id));
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userRepository.deleteById(id);
}
}
```
5. 在 `user-service` 模块中创建一个 `UserRepository` 接口,用于操作用户数据:
```java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
```
6. 在 `user-service` 模块中创建一个 `User` 实体类,用于映射用户数据表:
```java
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// 省略 getter 和 setter
}
```
7. 在 `main-application` 模块中创建一个 `UserNotFoundException` 类,用于处理用户不存在的异常:
```java
@ResponseStatus(HttpStatus.NOT_FOUND)
public class UserNotFoundException extends RuntimeException {
public UserNotFoundException(Long id) {
super("User not found: " + id);
}
}
```
8. 运行应用程序并访问 `http://localhost:8080/users`,可以看到一个空的用户列表。通过发送 RESTful 请求,可以添加、更新、删除和查找用户。
阅读全文