Un débutant travaillant avec Thymeleaf voulait connaître la différence de comportement entre @Controller et @RestController, alors je l'ai étudié.
Démarrez sprintboot et accédez à l'URL suivante. http://localhost:8080/〇〇
@ Controller
Avec un code comme ci-dessous http://localhost:8080/list Lorsque vous accédez main/resources/templates/list_display.html Le html de s'affiche à l'écran. (La chaîne de caractères "list_display" n'est pas affichée telle quelle)
@Controller
public class AppController {
    @GetMapping("list")
    public String from_list(){
        return "list_display";
    }
}
@ RestController
D'autre part, créez le fichier contrôleur suivant et utilisez @RestController pour le créer. http://localhost:8080/person Lorsque vous accédez
@RestController
public class SampleController {
    @GetMapping("person")
    public Person person() {
        return new Person(123, "hogehoge", 40);
    }
}
La chaîne de caractères suivante est renvoyée telle quelle. {"id":123,"name":"hogehoge","age":40}
(Créez une classe Person distincte comme celle ci-dessous)
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Person {
    Integer id;
    String name;
    Integer age;
}
--Si vous souhaitez afficher le fichier html dans resource / sur l'écran, @RestController --Si vous souhaitez simplement afficher une chaîne de caractères, @Controller
Utilisons.
«C'est facile, mais je l'ai préparé pour mon propre mémorandum.
Recommended Posts