main 함수 실행 : Ctrl + Shift + F10
테스트 생성 : Ctrl + Shift + T
특정 클래스에 대한 테스트 코드를 만들고 싶을 때 ctrl + shift + T 단축키를 입력하면 테스트를 바로 생성할 수 있다.
generate 단축키 : Alt + Insert
generate 단축키를 사용하면 생성자, getter, setter, toString등등 쉽게 만들 수 있다.
다음과 같은 Person 클래스에서 Alt+Insert 단축키를 사용해보자.
public class Person {
private String name;
private int age;
}
이렇게 원하는 것을 선택할 수 있다. 한 번 Constructor를 선택해보자.
원하는 것을 선택하고 OK를 눌러준다.
public class Person {
public Person(String name, int age) {
this.name = name;
this.age = age;
}
private String name;
private int age;
}
빠르게 생성자가 생성되었다. 같은 방법으로 getter와 setter도 설정할 수 있다.
Alt + Insert -> Getter and Setter -> 원하는 멤버 변수를 선택 -> OK
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
interface 구현체 생성 : Ctrl + O
public class LogInterceptor implements HandlerInterceptor {
}
위 클래스는 HandlerInterceptor의 구현체이다.
반드시 구현해야 하는 메소드들이 존재하는데 Ctrl + O 단축키를 누르면 구현해야 하는 메소드들이 나온다.
상수 분리: Ctrl + Alt + C
@Slf4j
public class LogInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestURI = request.getRequestURI();
String uuid = UUID.randomUUID().toString();
request.setAttribute("logId", uuid);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
request.setAttribute의 첫 번째 값을 상수로 분리하고 싶다면 해당 값을 클릭하 Ctrl + Alt + C 단축키를 누르면 된다.
@Slf4j
public class LogInterceptor implements HandlerInterceptor {
public static final String LOG_ID = "logId";
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestURI = request.getRequestURI();
String uuid = UUID.randomUUID().toString();
request.setAttribute(LOG_ID, uuid);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
변수 이름 한 번에 바꾸기 : shift + F6
클래스의 멤버 변수를 사용하는 여러 메소드들이 있다고 하자. 그런데 갑자기 변수 이름을 변경해야 한다면 상당히 번거로운 일일 것이다.
위의 Person 클래스에서 name이라는 멤버 변수를 userName으로 바꾸고 싶다면 name을 클릭하고 shift + F6 단축키를 입력하면 된다.
모두 선택된 모습을 볼 수 있고 여기서 변경을 한다면 모두 바뀌게 된다.
this.name = name에서 메소드의 인자로 받은 name은 선택되지 않는 것으로 보아 단순히 같은 이름을 모두 선택하는 것이 아니다.
같은 파일 내부 이름 한 번에 바꾸기 : Ctrl + R
같은 파일 내부에 존재하는 이름을 모두 찾고 바꿀 이름을 입력한다.
replace로 원하는 것만 변경할 수도 있고 replace All로 모든 이름을 변경할 수도 있다.
같은 폴더 내부 이름 한 번에 바꾸기 : Ctrl + Shift + R
원하는 폴더를 선택하고 Ctrl + Shift+ R 단축키를 누르면 해당 폴더 내부의 모든 파일에 대해서 이름을 찾고 변경할 수 있다.
자동 변수 할당 : Ctrl + Alt + V
이제 person이라는 이름의 Person 인스턴스를 생성한다면 아래와 같은 코드일 것이다.
Person person = new Person("chulsoo", 3);
이것도 new Person("chulsoo",3); 이 문장만 입력하고 ctrl + Alt + v 단축키를 누르면 바로 생성할 수 있다.
ctrl + Alt + v 입력
보다시피 이름을 자동으로 만들어주고 선택되어있기 때문에 변경을 원하면 바로 변경하면 된다.
특정 값을 반환하는 함수를 사용할 때도 사용 가능하다.
메소드 분리 : Ctrl + Alt + m
메소드를 계속 이어붙이다 보면 너무 길어질 때가 있다. 이럴 때는 선택해서 ctrl + Alt + m 단축키를 누르면 메소드를 따로 분리할 수 있다.
ctrl + Alt + m 입력
이것도 기본적으로 메소드 이름이 선택되어있으므로 바로 변경하면된다.
public void static main 함수 생성 : psvm
반복문 생성 : iter
배열을 생성하고 iter을 입력하면 자동으로 반복문을 생성해준다.
변수 자동 출력 : soutv
자동으로 변수 이름과 값을 출력하는 코드를 생성해준다.
메소드 자동 출력 : soutm
현재 동작중인 메소드에 대한 정보를 출력하는 코드를 생성해준다.
'공부 > Spring' 카테고리의 다른 글
[Spring][스프링 핵심 원리] 의존 관계 주입 방법 및 옵션 처리 (0) | 2023.01.19 |
---|---|
[Spring][스프링 핵심 원리] 스프링 컨테이너와 스프링 (0) | 2023.01.12 |
[Spring][인프런 스프링 입문] AOP가 필요한 상황 및 적용 (0) | 2023.01.06 |
[Spring][인프런 스프링 입문] Test 코드 작성 (0) | 2023.01.02 |
[Spring][인프런 스프링 입문] JPA 기본 사용법 (2) | 2023.01.01 |
댓글