SpringBootによるインターフェースのメソッドラッピング方法
Spring Boot でインターフェイスをラップする方法が数多くありますが、以下に一般的に使用される方法をいくつか示します。 1. インターフェイスクラスを作成し、インターフェイスの要求パス、要求メソッド、要求パラメータなどの情報を定義します。 “`javapublic interface MyApi {
@RequestMapping(value = “/users/{id}”, method = RequestMethod.GET)
User getUser(@PathVariable(“id”) Integer id);
@RequestMapping(value = “/users”, method = RequestMethod.POST)
User createUser(@RequestBody User user);
// 他のインターフェイスメソッド…}“` 2. インターフェイスを実装するクラスを作成し、`@RestController` 注釈でコントローラクラスとしてマークし、 `@Autowired` 注釈を使用して呼び出す必要があるサービスクラスを注入します。 “`java@RestControllerpublic class MyApiController implements MyApi {
@Autowired
private UserService userService;
@Override
public User getUser(Integer id) {
return userService.getUser(id);
}
@Override
public User createUser(User user) {
return userService.createUser(user);
}
// 他のインターフェイスメソッドの実装…}“` 3. 起動クラスに`@EnableFeignClients` 注釈を追加して、Feign クライアント機能を有効にします。 “`java@SpringBootApplication@EnableFeignClientspublic class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}}“` 4. インターフェイスを呼び出す必要がある他の場所で、`@Autowired` 注釈を使用してインターフェイスオブジェクトを注入し、インターフェイスメソッドを直接呼び出します。 “`java@RestControllerpublic class MyController {
@Autowired
private MyApi myApi;
@GetMapping(“/users/{id}”)
public User getUser(@PathVariable Integer id) {
return myApi.getUser(id);
}
@PostMapping(“/users”)
public User createUser(@RequestBody User user) {
return myApi.createUser(user);
}
// 他のインターフェイス呼び出しメソッド…}“` 上記の手順により、インターフェイスの実装を 1 つのクラスにラップし、注入によって他の場所でインターフェイスメソッドを呼び出して、コードの再利用とカプセル化を実現できます。