@RestControllerを理解するには、最初に他のいくつかの注釈を理解できます
@コントローラ
@Controllerは、Springフレームワークによって提供される注釈であり、@ Controllerによって識別されるクラスは、コントローラークラス(制御レイヤー/プレゼンテーションレイヤー)を表します。コントロールレイヤーのすべてのメソッドは、@ Service(ビジネスロジックレイヤー)で識別されるクラスを呼び出すことができ、@ Serviceで識別されるクラスのメソッドは、@ Resposity(Daoレイヤー/永続レイヤー)で識別されるインターフェイス実装クラスを引き続き呼び出すことができます。 。
@Controllerはクラスをマークするために使用され、それでマークされたクラスはSpringMVC Controllerクラスです。ディストリビューションプロセッサは、アノテーションを使用してクラスのメソッドをスキャンし、メソッドが@RequestMappingアノテーションを使用しているかどうかを検出します。@Controllerは、コントローラークラスを定義するだけであり、@ RequestMappingで注釈が付けられたメソッドは、要求を処理するプロセッサーです。@RequestMappingは、外部アクセスメソッドのパス、またはトリガーパス、トリガー条件を提供します。
Controllerクラスのメソッドを@ResponseBodyでマークします。返品の結果をJSONオブジェクトに変換して返品します。この注釈がないと、このメソッドはジャンプするパス、つまりジャンプするページにのみ戻ることができます。この注釈を使用すると、ページをスキップしてJSONデータのみを返す必要はありません。
@RestController
@RestControllerは、Spring4.0以降に追加された新しい注釈です。これは、@ Controller + @ResponseBodyの複合効果と同等です。
Controllerクラスのメソッドの戻り値はデフォルトでJSONオブジェクトであり、@ Controllerのメソッドに@ResponseBodyを追加するのと同じです。メソッドが値を返し、ジャンプが必要な場合、メソッドの戻りタイプはViewまたはModelAndViewである必要があります。
import com.example.studentsys.entiy.User;
import com.example.studentsys.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
@PostMapping("/login")
public String login(User user){
return userService.login(user);
}
@PostMapping("/regist")
public String regist(User user){
return userService.regist(user);
}
/**
* 解决查询数据库中文出现乱码问题
* @return
*/
@RequestMapping(value = "/alluser", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public List<User> findAll(){
return userService.findAll();
}
}