[JAVA] Memo zur Spring Boot Controller-Methode

Die Spring MVC-Steuerungsmethode kann zusätzlich zu den auf dem Bildschirm eingegebenen Parametern verschiedene Informationen als Argumente empfangen.

@Secured Durch Hinzufügen der Annotation "@ Secured" können Sie die Berechtigung für die URL angeben.


@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.Auf HTML kann zugegriffen werden, wenn Sie angemeldet sind
// /sbadmin2/forms.HTML-Login und Rolle_Zugriff, wenn STAFF-Berechtigungen zugewiesen wurden

@RequestParam Wenn Sie die Annotation "@ RequestParam" angeben, können Sie die in der URL enthaltenen Abfrageparameter und die im Nachrichtentext enthaltenen Post-Parameter erhalten.


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

@RequestPart Wenn Sie die Annotation "@ RequestParam" angeben, können Sie Bild- / Videodateien und JSON empfangen.


@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 Sie können die Annotation "@ PathVariable" angeben, um die in der URL enthaltenen dynamischen Parameter zu erhalten.


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

@RequestHeader Wenn Sie die Annotation "@ RequestHeader" angeben, können Sie jedes im Anforderungsheader enthaltene Element empfangen.


@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 Wenn Sie die Annotation "@ RequestBody" angeben, können Sie den Inhalt des Anforderungshauptteils unverändert abrufen.

@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 Geben Sie die Annotation @ DateTimeFormat an, um das Format der Zeichenfolgendarstellung des empfangenen Datums und der empfangenen Uhrzeit anzugeben.

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

@Autowired Es werden automatisch Beans eingefügt, die dem Typ des angegebenen Felds entsprechen. Wenn mehrere Beans den Typ erfüllen, können sie mithilfe der Annotation @Qualifier eindeutig identifiziert werden.

Referenz: Überprüfung des Unterschieds zwischen @Autowired, @Inject, @Resource @Validated Geben Sie die Annotation "@ Validated" an, um die Validierung zu aktivieren.

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

@AuthenticationPrincipal Geben Sie die Annotation "@ AuthenticationPrincipal" an, damit die authentifizierten Benutzerinformationen automatisch an das Argument übergeben werden.

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

Recommended Posts

Memo zur Spring Boot Controller-Methode
Schreiben von Frühlingsstiefel-Memos (1)
Schreiben von Spring Boot-Memos (2)
Memo zur Installationsmethode von Spring Boot + Thymeleaf Boot Strap
Sicherheit der Verwendungsnotizmethode für Spring Security
◆ Konstruktionsnotiz für Spring Boot + Gradle-Umgebung
Spring Boot + PostgreSQL-Fehlerbehebungsmethode
Ein Memo, das Spring Boot berührte
Frühlingsrückblick Memo
Spring Boot Umgebungskonstruktionsnotiz auf Mac
Fordern Sie Spring Boot heraus
Verwenden Sie die DynamoDB-Abfragemethode mit Spring Boot
Spring Boot Form
Spring Boot Denken Sie daran
Testen Sie den Controller mit Mock MVC im Spring Boot
JJUG CCC Frühjahr 2018 Memo
SPRING BOOT Lernaufzeichnung 01
Frühlingsstiefel + Heroku Postgres
Hinweise zur Verwendung von Spring Shell
Java-Lernnotiz (Methode)
Erster Frühlingsstiefel (DI)
SPRING BOOT Lernprotokoll 02
Spring Boot2 Spickzettel
Spring Boot-Ausnahmebehandlung
Spring Boot Entwicklung-Entwicklungsumgebung-
Spring Boot-Lernverfahren
Ruft den Klassennamen und den Methodennamen des Controllers ab, der vom HandlerInterceptor von Spring Boot ausgeführt wird
Spring Boot lernen [Anfang]
Spring Boot 2.2 Dokumentzusammenfassung
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Spring Boot 2.3 Verfügbarkeit von Anwendungen
Spring Boot Tutorials Themen
Mit Spring Boot herunterladen
Verwendungshinweis zu Spring Security: Zusammenarbeit mit Spring MVC und Boot
[Spring Boot] Umgebungskonstruktion (macOS)
[Persönliche Notizen] Über das Spring Framework
Legen Sie den Kontextparameter in Spring Boot fest
Spring + MyBatis-Verbindungseinstellungsmethode
Versuchen Sie Spring Boot von 0 bis 100.
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
JJUG CCC 2018 Frühlingsbeteiligungsprotokoll
Implementieren Sie GraphQL mit Spring Boot
[Spring] Controller-Ausnahmeausgabetest
Spring Framework Selbststudium Memo series_1
Aufgabenplan für das Spring Boot Tutorial
Spring 5 & Spring Boot 2 Praktisches Vorbereitungsverfahren
Beginnen Sie mit Spring Boot
Spring Security-Nutzungsnotiz Run-As
Java Silver Lernmethode Memo
Hallo Welt mit Spring Boot!
Erstellen Sie eine Java-Methode [Memo] [java11]
Spring Boot 2 Multiprojekt mit Gradle
[Spring Boot] Erstellung von Webanwendungen
Spring Boot Hot Swapping-Einstellungen
Spring Model View Controller Flow
[Java] Thymeleaf Basic (Spring Boot)
Einführung in Spring Boot ~ ~ DI ~
Spring Security-Nutzungsnotiz Remember-Me