이 글에서는 Spring mvc의 공통 Annotation을 주로 소개하며, @RequestMapping, @RequestParam, @ModelAttribute 등 유사한 Annotation을 자세히 소개하고 있으니 관심 있는 분들은 알아보세요
Spring은 버전부터 프로그래밍에 Annotation을 도입했습니다. 2.5. 사용자는 @RequestMapping, @RequestParam, @ModelAttribute 및 기타 유사한 주석을 사용할 수 있습니다. 지금까지 Spring 버전은 큰 변화를 겪었지만 Annotation의 기능은 계속해서 확장되어 개발자의 손을 더욱 쉽게 만들어주었습니다. 이는 Function의 힘과 불가분의 관계에 있습니다. 오늘은 Annotation에 대해 살펴보겠습니다. Spring MVC 4에서 일반적으로 사용됩니다.
1. @Controller
Controller는 애플리케이션에 대한 액세스를 제공하는 서비스 인터페이스를 통해 정의된 동작이며, 이를 모델로 변환한 다음 사용자에게 뷰를 제공합니다. Spring MVC는 @Controller를 사용하여 컨트롤러를 정의하며, 이를 통해 클래스 경로에 정의된 구성 요소가 자동으로 감지되고 자동 등록될 수 있습니다. 자동 감지를 적용하려면 XML 헤더 파일 아래에 spring-context를 도입해야 합니다:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="org.springframework.samples.petclinic.web"/> <!-- ... --></beans>
2. @RequestMapping
@RequestMapping 주석을 사용하여 " /favsoft"를 사용하여 클래스 전체 또는 특정 처리 방법을 지정할 수 있습니다. 일반적으로 클래스 수준 주석은 특정 요청 경로를 양식 컨트롤러에 매핑하는 반면, 메서드 수준 주석은 단순히 특정 HTTP 메서드 요청("GET", "POST" 등) 또는 HTTP 요청 매개변수에 매핑합니다.
@Controller @RequestMapping("/favsoft") public class AnnotationController { @RequestMapping(method=RequestMethod.GET) public String get(){ return ""; } @RequestMapping(value="/getName", method = RequestMethod.GET) public String getName(String userName) { return userName; } @RequestMapping(value="/{day}", method=RequestMethod.GET) public String getDay(Date day){ DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); return df.format(day); } @RequestMapping(value="/addUser", method=RequestMethod.GET) public String addFavUser(@Validated FavUser favUser,BindingResult result){ if(result.hasErrors()){ return "favUser"; } //favUserService.addFavUser(favUser); return "redirect:/favlist"; } @RequestMapping("/test") @ResponseBody public String test(){ return "aa"; } }
@RequestMapping은 클래스 수준과 메서드 수준 모두에 적용할 수 있습니다. 클래스 수준에서 정의되면 이 컨트롤러에서 처리하는 모든 요청이 /favsoft 경로에 매핑됨을 나타냅니다. @RequestMapping의 메소드 속성을 사용하여 메소드 유형을 지정하지 않으면 HTTP GET/POST 메소드를 사용하여 데이터를 요청할 수 있습니다. 해당 유형만 사용하여 데이터를 얻으세요.
@RequestMapping @Validated 및 BindingResult를 사용하여 입력 매개변수를 공동으로 확인할 수 있습니다. 확인이 성공하거나 실패하면 각각 다른 뷰가 반환됩니다.
@RequestMapping은 URI 템플릿을 사용하여 URL에 액세스하도록 지원합니다. URI 템플릿은 하나 이상의 변수 이름으로 구성된 URL과 유사한 문자열입니다. 이러한 변수에 값이 있으면 URI가 됩니다.
3. @PathVariable
Spring MVC에서는 @PathVariable을 사용하여 메서드 매개변수에 주석을 달고 이를 URI 템플릿 변수의 값에 바인딩할 수 있습니다. 다음 코드에 표시된 대로
String findOwner( String , Model model) { FavUser favUser = favUserService.findFavUser(); model.addAttribute( ; }
URI 템플릿 "favusers/{favUserId}"는 컨트롤러가 이 요청을 처리할 때 favUserId 값이 URI로 설정됩니다. 예를 들어 "favusers/favccxx"와 같은 요청이 있는 경우 favUserId의 값은 favccxx입니다.
@PathVariable은 다음과 같이 여러 주석을 가질 수 있습니다.
@RequestMapping(value="/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET)public String findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) { Owner owner = ownerService.findOwner(ownerId); Pet pet = owner.getPet(petId); model.addAttribute("pet", pet); return "displayPet"; }
@PathVariable의 매개변수는 int, long, Date 등과 같은 간단한 유형일 수 있습니다. Spring은 이를 적절한 유형으로 자동 변환하거나 TypeMismatchException을 발생시킵니다. 물론 추가 데이터 유형을 지원하도록 등록할 수도 있습니다.
@PathVariable이 Map
@PathVariable은 매우 강력한 속성을 결정하는 정규식 사용을 지원하며 경로 템플릿에서 자리 표시자를 사용할 수 있고 특정 접두사 일치, 접미사 일치 및 기타 사용자 정의 형식을 설정할 수 있습니다.
@PathVariable도 행렬변수를 지원합니다. 실제 시나리오에서는 많이 사용되지 않기 때문에 자세히 소개하지 않겠습니다. 어린이용 신발이 필요한 경우 공식 웹사이트의 문서를 확인하세요.
4. @RequestParam
@RequestParam은 다음 코드와 같이 요청된 매개변수를 메서드의 매개변수에 바인딩합니다. 실제로 이 매개변수가 구성되지 않은 경우에도 주석은 기본적으로 이 매개변수를 사용합니다. 지정된 매개변수를 사용자 정의하려면 @RequestParam의 필수 속성을 false(예: @RequestParam(value="id",required=false))로 설정합니다.
5. @RequestBody
@RequestBody는 메서드 매개변수가 HTTP 요청 본문에 바인딩되어야 함을 의미합니다.
@RequestMapping(value = "/something", method = RequestMethod.PUT)public void handle(@RequestBody String body, Writer writer) throws IOException { writer.write(body); }
@RequestBody가 @RequestParam만큼 좋지 않다고 생각되면 HttpMessageConverter를 사용하여 요청 본문을 메서드 매개 변수로 전송할 수 있습니다. HttMessageConverser는 Object 개체 간에 HTTP 요청 메시지를 변환하지만 일반적으로 그렇지 않습니다. 완료. . REST 아키텍처를 구축할 때 @RequestBody는 @RequestParam보다 더 큰 장점이 있는 것으로 나타났습니다.
6. @ResponseBody
@ResponseBody는 @RequestBody와 유사하며 HTTP 응답 본문에 반환 유형을 직접 입력하는 기능입니다. @ResponseBody는 JSON 형식으로 데이터를 출력할 때 자주 사용됩니다. 코드는
@RequestMapping(value = "/something", method = RequestMethod.PUT)@ResponseBodypublic String helloWorld() { return "Hello World"; }
7입니다. 我们经常见到一些控制器实现了REST的API,只为服务于JSON,XML或其它自定义的类型内容,@RestController用来创建REST类型的控制器,与@Controller类型。@RestController就是这样一种类型,它避免了你重复的写@RequestMapping与@ResponseBody。 8. HttpEntity HttpEntity除了能获得request请求和response响应之外,它还能访问请求和响应头,如下所示: 9. @ModelAttribute @ModelAttribute可以作用在方法或方法参数上,当它作用在方法上时,标明该方法的目的是添加一个或多个模型属性(model attributes)。该方法支持与@RequestMapping一样的参数类型,但并不能直接映射成请求。控制器中的@ModelAttribute方法会在@RequestMapping方法调用之前而调用,示例如下: @ModelAttribute方法用来在model中填充属性,如填充下拉列表、宠物类型或检索一个命令对象比如账户(用来在HTML表单上呈现数据)。 @ModelAttribute方法有两种风格:一种是添加隐形属性并返回它。另一种是该方法接受一个模型并添加任意数量的模型属性。用户可以根据自己的需要选择对应的风格。 @ModelAttribute作用在方法参数上 当@ModelAttribute作用在方法参数上时,表明该参数可以在方法模型中检索到。如果该参数不在当前模型中,该参数先被实例化然后添加到模型中。一旦模型中有了该参数,该参数的字段应该填充所有请求参数匹配的名称中。这是Spring MVC中重要的数据绑定机制,它省去了单独解析每个表单字段的时间。 @ModelAttribute是一种很常见的从数据库中检索属性的方法,它通过@SessionAttributes使用request请求存储。在一些情况下,可以很方便的通过URI模板变量和类型转换器检索属性。@RestController
public class FavRestfulController {
@RequestMapping(value="/getUserName",method=RequestMethod.POST)
public String getUserName(@RequestParam(value="name") String name){
return name;
}
}
@RequestMapping("/something")public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException {
String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader")); byte[] requestBody = requestEntity.getBody(); // do something with request header and body
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("MyResponseHeader", "MyValue"); return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
}
@ModelAttribute
public Account addAccount(@RequestParam String number) {
return accountManager.findAccount(number);
}
@ModelAttribute
public void populateModel(@RequestParam String number, Model model) {
model.addAttribute(accountManager.findAccount(number));
// add more ...
}
위 내용은 Spring MVC에서 일반적으로 사용되는 주석 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Java'splatforminceldenceMeansdeveloperscanwriteCodeOnceAndrunitonAnyDevicewithoutRecompiling.thisiSocievedTheRoughthejavirtualMachine (JVM), thisTecodeIntomachine-specificinstructions, hallyslatslatsplatforms.howev

JVM을 설정하려면 다음 단계를 따라야합니다. 1) JDK 다운로드 및 설치, 2) 환경 변수 설정, 3) 설치 확인, 4) IDE 설정, 5) 러너 프로그램 테스트. JVM을 설정하는 것은 단순히 작동하는 것이 아니라 메모리 할당, 쓰레기 수집, 성능 튜닝 및 오류 처리를 최적화하여 최적의 작동을 보장하는 것도 포함됩니다.

ToensureJavaplatform Independence, followthesesteps : 1) CompileIndrunyourApplicationOnMultiplePlatformsUsingDifferentOnsandjvMversions.2) Utilizeci/CDPIPELINES LICKINSORTIBACTIONSFORAUTOMATES-PLATFORMTESTING

javastandsoutindevelopmentduetoitsrobustfeatureslikelambdaexpressions, andenhancedconcurrencysupport.1) lambdaexpressionssimplifyfunctionalprogramming, 2) 스트림 유출 이용성 Dataprocessing withoperationli

Java의 핵심 기능에는 플랫폼 독립성, 객체 지향 디자인 및 풍부한 표준 라이브러리가 포함됩니다. 1) 객체 지향 설계는 다형성 기능을 통해 코드를보다 유연하고 유지 관리 할 수있게합니다. 2) 쓰레기 수집 메커니즘은 개발자의 메모리 관리 부담을 방해하지만 성능 문제를 피하기 위해 최적화해야합니다. 3) 표준 라이브러리는 컬렉션에서 네트워크까지 강력한 도구를 제공하지만 코드를 간결하게 유지하려면 데이터 구조를 신중하게 선택해야합니다.

예, Javacanruneverywhereduetoits "WriteOnce, Runanywhere"Philosophy.1) JavacodeiscompileDintoplatform-IndependentBecode.2) ThejavavirtualMachine (JVM) intermachineintomachine-specificinstructionstruntime, 허용

Java의 주요 기능은 다음과 같습니다. 1) 객체 지향 설계, 2) 플랫폼 독립성, 3) 쓰레기 수집 메커니즘, 4) 풍부한 라이브러리 및 프레임 워크, 5) 동시성 지원, 6) 예외 처리, 7) 연속 진화. Java의 이러한 기능은 효율적이고 유지 관리 가능한 소프트웨어를 개발하기위한 강력한 도구입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)