dkb
1k
2017-05-19 14:16:11.0 작성 2017-05-19 14:18:10.0 수정됨
2
795

@ResponseBody와 줄 맞추기에 대해서


혹시 `@ResponseBody` 자주 사용하세요?

`@RestController`를 사용하신다면 해당 사항이 없는 내용입니다만.


흔히 이렇게 많이들 사용합니다. 많이 보이는 예제 패턴이기도 하구요.

1.

@Controller
public class ResponseBodyExampleController1 {
  
  @GetMapping("/")
  public @ResponseBody String someMethod() {
    return "result";
  }
  
}


그런데 이걸 `Auto-Indent  Lines` 같은걸 돌려버리면 아래처럼 바뀝니다.

2.

@Controller
public class ResponseBodyExampleController2 {
  
  @GetMapping("/")
  public
  @ResponseBody
  String someMethod() {
    return "result";
  }
  
}


전 이게 너무 보기 싫었습니다. 사실 일일이 1.처럼 수정했더랍니다.


`@ResponseBody` interface는 다음과 같습니다.

package org.springframework.web.bind.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ResponseBody {
}


유의해서 보실 부분이 @Target입니다. `ElementType.METHOD`를 대상으로 하고 있기 때문에 메서드 내에서 아무데나 던져놔도 됩니다(?)


그런즉

3.

@Controller
public class ResponseBodyExampleController3 {
  
  @ResponseBody
  @GetMapping("/")
  public String someMethod() {
    return "result";
  }
  
}


이렇게 사용하면 `Auto-Indent  Lines `등과 상관없이 깔끔한 줄 상태를 유지할 수 있는 것이죠!


저처럼 이런거 민감한분들께 도움이 되길 바랍니다(...)

0
1
  • 댓글 2

  • KDEV
    3k
    2017-05-19 14:51:03.0

    + 3번의 경우 쉽게 주석처리할 수 있어요~

    0
  • 전재형
    3k
    2017-05-20 03:51:03.0

    원래 어노테이션은 타켓의 부가적인 속성을(자바 자체 문법외 속성:접근제어, 반환형) 명시하기위한 것 아닌가요.


    저는 그래서 어노테이션은 항상 앞에 씁니다.

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.