[JAVA] Mémo de méthode de contrôleur de démarrage à ressort

La méthode du contrôleur Spring MVC peut recevoir diverses informations en tant qu'arguments en plus des paramètres saisis à l'écran.

@Secured En ajoutant l'annotation «@ Secured», vous pouvez spécifier l'autorité liée à l'URL.


@Controller
@RequestMapping("/sbadmin2/")
@Secured("IS_AUTHENTICATED_FULLY")
public class SbAdmin2Controller {

    @RequestMapping("/index.html")
    public ModelAndView index() {
        return new ModelAndView("SbAdmin2Controller/index");
    }

    @Secured("ROLE_STAFF")
    @RequestMapping("/forms.html")
    public ModelAndView forms() {
        return new ModelAndView("SbAdmin2Controller/forms");
    }
}
// /sbadmin2/index.html est accessible si vous êtes connecté
// /sbadmin2/forms.connexion html et ROLE_Accessible si les privilèges STAFF sont attribués

@RequestParam Si vous spécifiez l'annotation @ RequestParam, vous pouvez recevoir les paramètres de requête inclus dans l'URL et les paramètres de publication inclus dans le corps du message.


@GetMapping("/hello")
public String hello(@RequestParam("name") String name) {}
// /hello?name=string

@RequestPart Si vous spécifiez l'annotation @ RequestParam, vous pouvez recevoir des fichiers image / vidéo et JSON.


@GetMapping("/hello")
public String hello(@RequestPart("data") String data) {}
const data = new FormData()
data.append('file', file)
data.append('jsonValue', new Blob([JSON.stringify(sampleObject)], {type : 'application/json'}))

axios.get('/hello', data)

@PathVariable Vous pouvez spécifier l'annotation @ PathVariable pour recevoir les paramètres dynamiques contenus dans l'URL.


@GetMapping("/hello/{userId}")
public String hello(@PathVariable("userId") Integer userId) {

@RequestHeader Si vous spécifiez l'annotation @ RequestHeader, vous pouvez recevoir chaque élément contenu dans l'en-tête de la demande.


@GetMapping("/hello")
public String hello(@RequestHeader("User-Agent") String userAgent) {

RequestHeader


GET /hello?userId=10 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json
X-XSRF-TOKEN: 00000-000-0000-0000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Referer: http://localhost:8080/hello?userId=10
Accept-Encoding: gzip, deflate, br
Accept-Language: ja,en-US;q=0.9,en;q=0.8
Cookie: [email protected];
JSESSIONID=sfdgfhgjh;
XSRF-TOKEN=00000-000-0000-0000

@RequestBody Si vous spécifiez l'annotation @ RequestBody, vous pouvez obtenir le contenu du corps de la requête tel quel.

@PostMapping("/hello")
public String hello(@RequestBody String body) {
POST /hello HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 22
Cache-Control: max-age=0
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://localhost:8080/hello
Accept-Encoding: gzip, deflate, br
Accept-Language: ja,en-US;q=0.8,en;q=0.6

user=scott&password=tiger

@DateTimeFormat Spécifiez l'annotation @ DateTimeFormat pour spécifier le format de la représentation sous forme de chaîne de la date et de l'heure de réception.

@GetMapping("/hello/{date}")
public String hello(@PathVariable("date") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) java.util.Date date) {}

@Autowired Il injecte automatiquement des beans qui correspondent au type du champ donné. Si plusieurs beans correspondent au type, ils peuvent être identifiés de manière unique à l'aide de l'annotation @Qualifier.

Référence: Vérification de la différence entre @Autowired, @Inject, @Resource @Validated Spécifiez l'annotation «@ Validated» pour activer la validation.

 @PostMapping("/hello")
    public String hello(@RequestBody @Validated String name)

@AuthenticationPrincipal Spécifiez l'annotation @ AuthenticationPrincipal afin que les informations de l'utilisateur authentifié soient automatiquement transmises à son argument.

@RequestMapping("/hello")
    public String hello(@AuthenticationPrincipal AppUserDetail userDetail) {
        log.info("debug: {}", userDetail);
 
        return "user";
    }

Recommended Posts

Mémo de méthode de contrôleur de démarrage à ressort
Rédaction de mémo de démarrage de printemps (1)
Rédaction de mémos de démarrage de printemps (2)
Spring Boot + Thymeleaf Boot Strap Méthode d'installation mémo
Spring Security Usage Memo Method Security
◆ Spring Boot + note de construction de l'environnement gradle
Méthode de résolution d'erreur Spring Boot + PostgreSQL
Un mémo qui a touché Spring Boot
Mémo rétrospective du printemps
Mémo de construction de l'environnement Spring Boot sur Mac
Défi Spring Boot
Utiliser la méthode de requête DynamoDB avec Spring Boot
Forme de botte de printemps
Spring Boot Rappelez-vous
Testez le contrôleur avec Mock MVC dans Spring Boot
Mémo JJUG CCC Printemps 2018
Fiche d'apprentissage SPRING BOOT 01
Botte de printemps + Heroku Postgres
Notes d'utilisation de Spring Shell
Mémo d'apprentissage Java (méthode)
Première botte à ressort (DI)
Fiche d'apprentissage SPRING BOOT 02
Aide-mémoire Spring Boot2
Gestion des exceptions Spring Boot
Environnement de développement-développement Spring Boot-
Procédure d'apprentissage Spring Boot
Obtenez le nom de classe et le nom de méthode du contrôleur exécuté par le HandlerInterceptor de Spring Boot
Apprentissage de Spring Boot [Début]
Résumé du document Spring Boot 2.2
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Disponibilité de l'application Spring Boot 2.3
Tutoriels Spring Boot Sujets
Télécharger avec Spring Boot
Mémo d'utilisation de Spring Security: coopération avec Spring MVC et Boot
[Spring Boot] Construction de l'environnement (macOS)
[Notes personnelles] À propos du framework Spring
Définir le paramètre contextuel dans Spring Boot
Méthode de configuration de la connexion Spring + MyBatis
Essayez Spring Boot de 0 à 100.
Générer un code à barres avec Spring Boot
Hello World avec Spring Boot
Mémo de participation au printemps JJUG CCC 2018
Implémenter GraphQL avec Spring Boot
[Spring] Test de sortie d'exception du contrôleur
Série de mémos d'auto-apprentissage Spring Framework_1
Calendrier des tâches du didacticiel Spring Boot
Spring 5 et Spring Boot 2 Procédure de préparation pratique
Démarrez avec Spring Boot
Mémo d'utilisation de Spring Security Run-As
Mémo de la méthode d'étude Java Silver
Bonjour tout le monde avec Spring Boot!
Créer une méthode java [Memo] [java11]
Multi-projets Spring Boot 2 avec Gradle
[Spring Boot] Création d'applications Web
Paramètres d'échange à chaud Spring Boot
Flux de contrôleur de vue du modèle de ressort
[Java] Thymeleaf Basic (Spring Boot)
Introduction à Spring Boot ① ~ DI ~
Mémo d'utilisation de Spring Security Remember-Me