[Java] record
2023. 5. 30. 18:18ㆍ기술 창고/Java
728x90
SMALL
record
record 는 java가 업데이트 됨에 따라 최근에 나온 신 기능입니다.
getter, setter, 생성자를 따로 만들 필요없이 객체를 생성할 수 있도록 지원해주는 기능입니다.
// 신 기능 : record
// getter, setter, 생성자를 따로 만들 필요없이 지원해주는 기능
record Person (String name, int age, Address address){};
record Address (String firstLine, String city){};
@Configuration
public class HelloWorldConfiguration {
@Bean
public Person person(){
var person = new Person("진세훈", 27, new Address("대한민국", "서울"));
return person;
}
@Bean
public Person person2MethodCall(){
var person = new Person(name(), age(), address());
return person;
}
@Bean
public Person person3Parameters(String name, int age, Address address3){
var person = new Person(name, age, address3);
return person;
}
@Bean
@Primary
public Person person4Parameters(String name, int age, Address address){
var person = new Person(name, age, address);
return person;
}
@Bean
public Person person5Qualifier(String name, int age, @Qualifier("address3qualifier") Address address){ // Qualifier를 통한 고정 호출
var person = new Person(name, age, address);
return person;
}
// @Bean 어노테이션에 name 옵션을 넣어 Bean 메소드의 이름을 지정해줄 수 있다.
// 지정해주게 되면 반드시 그 명으로 호출해야 에러가 나지 않는다.
@Bean(name = "address2")
@Primary // 기본 Bean 객체로 설정하는 어노테이션. 즉, Address 객체를 파라미터로 .getBean으로 클래스 자체를 호출할 때는 반드시 객체가 단일로 있어야 하기 때문에 아래의 address3 가 있어서 호출되지 않는다. 그래서 primary 로 기본 Address Bean 객체임을 명시해준다.
public Address address(){
return new Address("대한민국", "서울");
}
@Bean(name = "address3")
@Qualifier("address3qualifier") // @Qualifier 를 사용하면 Qualifier를 지정한 메소드를 고정하여 파라미터로 호출할 수 있다.
public Address address3(){
return new Address("한국", "부산");
}
}
728x90
반응형
LIST
'기술 창고 > Java' 카테고리의 다른 글
[Java] 클러스터 코디네이션(주키퍼)과 리더 선출 알고리즘 (0) | 2024.03.19 |
---|---|
[Java] Java를 활용한 분산 시스템 (0) | 2024.03.19 |
[Java] equalsIgnoreCase("~") (0) | 2023.04.03 |
[Java] System.out.println 메소드 지양 이유 (0) | 2023.02.01 |
[Java] 오버로딩 / 오버라이딩 (0) | 2023.01.31 |