Spring MVC에서 일반적으로 사용되는 주석 방법 소개
이 글에서는 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模板变量和类型转换器检索属性。 위 내용은 Spring MVC에서 일반적으로 사용되는 주석 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!@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 ...
}

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

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

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

2023년에는 AI 기술이 화두가 되면서 다양한 산업, 특히 프로그래밍 분야에 큰 영향을 미치고 있다. 사람들은 AI 기술의 중요성을 점점 더 인식하고 있으며 Spring 커뮤니티도 예외는 아닙니다. GenAI(일반 인공 지능) 기술이 지속적으로 발전함에 따라 AI 기능을 갖춘 애플리케이션 생성을 단순화하는 것이 중요하고 시급해졌습니다. 이러한 배경에서 AI 기능 애플리케이션 개발 프로세스를 단순화하고 간단하고 직관적이며 불필요한 복잡성을 피하는 것을 목표로 하는 "SpringAI"가 등장했습니다. 'SpringAI'를 통해 개발자는 AI 기능이 포함된 애플리케이션을 더욱 쉽게 구축할 수 있어 사용 및 운영이 더욱 쉬워진다.

PyCharm 여러 줄 주석 단축키: 코드 주석을 더욱 편리하게 만들고 특정 코드 예제를 요구합니다. 일상적인 프로그래밍 작업에서 코드 주석은 매우 중요한 부분입니다. 이는 코드의 가독성과 유지 관리성을 향상시킬 뿐만 아니라 다른 개발자가 코드의 의도와 디자인 아이디어를 이해하는 데에도 도움이 됩니다. 그러나 수동으로 코드 주석을 추가하는 것은 시간이 많이 걸리고 지루한 작업인 경우가 많습니다. 코드 주석을 보다 효율적으로 만들기 위해 PyCharm은 여러 줄 주석에 대한 단축키를 제공합니다. PyCharm에서는 Ctrl+/를 사용할 수 있습니다.

업계 리더인 Spring+AI는 강력하고 유연한 API와 고급 기능을 통해 다양한 산업에 선도적인 솔루션을 제공합니다. 이 주제에서는 다양한 분야의 Spring+AI 적용 사례를 살펴보겠습니다. 각 사례에서는 Spring+AI가 어떻게 특정 요구 사항을 충족하고 목표를 달성하며 이러한 LESSONSLEARNED를 더 넓은 범위의 애플리케이션으로 확장하는지 보여줍니다. 이 주제가 여러분이 Spring+AI의 무한한 가능성을 더 깊이 이해하고 활용하는 데 영감을 줄 수 있기를 바랍니다. Spring 프레임워크는 소프트웨어 개발 분야에서 20년 이상의 역사를 가지고 있으며, Spring Boot 1.0 버전이 출시된 지 10년이 되었습니다. 이제 봄이 왔다는 것에 대해 누구도 이의를 제기할 수 없습니다.

Spring 프로그래밍 방식 트랜잭션을 구현하는 방법: 1. TransactionCallback 및 TransactionCallbackWithoutResult를 사용합니다. 3. Transactional 주석을 사용합니다. 4. @Transactional과 함께 TransactionTemplate을 사용합니다.

지리정보학을 전공하는 학생들에게 적합한 컴퓨터 추천 1. 권장사항 2. 지리정보학을 전공하는 학생들은 대용량의 지리 데이터를 처리하고 복잡한 지리정보 분석을 수행해야 하므로 강력한 성능을 갖춘 컴퓨터가 필요합니다. 높은 구성을 갖춘 컴퓨터는 더 빠른 처리 속도와 더 큰 저장 공간을 제공할 수 있으며 전문적인 요구 사항을 더 잘 충족할 수 있습니다. 3. 데이터 처리 및 분석의 효율성을 향상시킬 수 있는 고성능 프로세서와 대용량 메모리가 장착된 컴퓨터를 선택하는 것이 좋습니다. 또한 더 큰 저장 공간과 고해상도 디스플레이를 갖춘 컴퓨터를 선택하면 지리 데이터와 결과를 더 잘 표시할 수 있습니다. 또한, 지리정보학을 전공하는 학생들은 지리정보시스템(GIS) 소프트웨어를 개발하고 프로그래밍해야 할 수도 있다는 점을 고려하여 그래픽 처리 지원이 더 나은 컴퓨터를 선택하세요.

Spring에서 트랜잭션 격리 수준을 설정하는 방법: 1. @Transactional 주석을 사용합니다. 2. Spring 구성 파일에서 설정합니다. 3. PlatformTransactionManager를 사용합니다. 4. Java 구성 클래스에서 설정합니다. 자세한 소개: 1. @Transactional 주석을 사용하고, 트랜잭션 관리가 필요한 클래스나 메소드에 @Transactional 주석을 추가하고, 속성에서 격리 수준을 설정합니다. 2. Spring 구성 파일에서 등.

iCloud 키체인을 사용하면 웹사이트나 사용자 이름을 기억하거나 추측하지 않고도 비밀번호를 더 쉽게 관리할 수 있습니다. iCloud 키체인에 있는 앱과 웹 사이트의 기존 비밀번호에 메모를 추가하면 됩니다. 이번 포스팅에서는 iPhone의 iCloud Keychain에 저장한 비밀번호에 메모를 추가하는 방법에 대해 설명하겠습니다. 요구 사항 iCloud 키체인에서 이 새로운 기능을 사용하려면 충족해야 할 몇 가지 요구 사항이 있습니다. iOS 15.4 이상을 실행하는 iPhone iCloud 키체인에 저장된 비밀번호 유효한 Apple ID 유효한 인터넷 연결 저장된 비밀번호에 메모를 추가하는 방법 일부 비밀번호를 iCloud 키체인에 저장해야 한다는 것은 말할 필요도 없습니다.

Spring은 Java 개발을 단순화하고 향상시키기 위해 많은 주석을 제공하는 오픈 소스 프레임워크입니다. 이 기사에서는 일반적으로 사용되는 Spring 주석을 자세히 설명하고 구체적인 코드 예제를 제공합니다. @Autowired: Autowired @Autowired 주석은 Spring 컨테이너에 Bean을 자동으로 연결하는 데 사용할 수 있습니다. 종속성이 필요한 @Autowired 주석을 사용하면 Spring은 컨테이너에서 일치하는 Bean을 찾아 자동으로 주입합니다. 샘플 코드는 다음과 같습니다. @Auto
