스프링부트 어노테이션

윤비·2024년 2월 21일
0

@Controller
public class HelloController {

@GetMapping("hello")
public String hello(){
    return "hello";
}

}

@Controller // 컨트롤러임을 명시해주는 의미


@GetMapping // 이는 localhost:8080/hello 요청이 들어오면 아래의 함수를 실행하라고 해석하면됨 (버튼을 눌러서 이동하는건 다 이것이다 라고 생각하면됨)


@ResponsBody // 이 함수의 리턴값을 그대로 브라우저에 출력하라는 의미 (없으면 함수는 실행이되지만 리턴이 실행이안된다)


@RequsetParam // 요청 파라미터를 매핑하여 호출시 값을 넣어주는 어노테이션 변수앞에 작성하며 사용할 속성 값과 매개변수의 이름이 다른경우
@RequsetParam("name")으로 설정 어노테이션은 생략 가능 하지만 명시적으로 작성하는 것이 의미 파악에 쉬움

@GetMapping(/calc3)
@ResponseBody
String showCalc3(
@RequseParam(defaultValue = "0") int a,
@RequseParam(defaultValue = "0") int b,
) {
return "계산 결과 : %d".formatted(a+b);
}

  • defaultValue 속성 활용

입력 값 없이 넘어오게 되면 "" 와 같은 빈 문자열이 넘어오게 되어 parsing 관련 에러가 발생할 수 있음 (400- 잘못 된 요청)
값이 넘어오지 않는 경우 defaultValue를 이용하여 기본 값 설정 가능
메소드 ( @RequseParam(defaultValue = "0") 변수 )

정수는 int %d / 정수,실수까지는 double %f / 모든형태는 String %s


@AllArgsConstructor // 어노테이션은 클래스의 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성한다. 이 어노테이션을 사용하면, 클래스의 모든 필드를 한 번에 초기화할 수 있다.

@AllArgsConstructor 어노테이션은 클래스의 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성한다. 이 어노테이션을 사용하면, 클래스의 모든 필드를 한 번에 초기화할 수 있다.

@AllArgsConstructor
public class Person {
private String name;
private int age;
// getters and setters
}

AllArgsConstructor 사용하면 Java 코드는 다음과 같아진다.

public class Person {
private String name;
private int age;

public Person(String name, int age) {
	this.name = name;
    this.age = age;
}

}


@NoArgsConstructor // 어노테이션은 파라미터가 없는 디폴트 생성자를 자동으로 생성한다. 이 어노테이션을 사용하면, 클래스에 명시적으로 선언된 생성자가 없더라도 인스턴스를 생성할 수 있다.

@NoArgsConstructor 어노테이션은 파라미터가 없는 디폴트 생성자를 자동으로 생성한다. 이 어노테이션을 사용하면, 클래스에 명시적으로 선언된 생성자가 없더라도 인스턴스를 생성할 수 있다.

@NoArgsConstructor
public class Person {
private String name;
private int age;
// getters and setters
}

NoArgsConstructor 사용하면 Java 코드는 다음과 같아진다.

public class Person {
private String name;
private int age;

public Person(){}

}


https://hongong.hanbit.co.kr/%EC%9E%90%EB%B0%94-%EC%A0%91%EA%B7%BC-%EC%A0%9C%ED%95%9C%EC%9E%90%EC%9D%98-%EC%A2%85%EB%A5%98%EC%99%80-%EC%B0%A8%EC%9D%B4public-protected-private/

private만 할땐 막혔는데 @getter 를 사용하게 되면 접근이 가능하게 된다
public을 쓰면 @getter안쓰고 접근가능


json 표현법에 자바 객체랑 맵을 구분하는 방법이 없다

profile
안녕하세요 응애 나 애기개발자

0개의 댓글