詳細なSpringBoot @ RestController

@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();
    }
}

 

おすすめ

転載: blog.csdn.net/li_w_ch/article/details/108937337