[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