6,836.17
전일대비 3.41 (+ 0.05% )
22,546.67
전일대비 50.48 ( -0.22% )
49,500.93
전일대비 48.95 (+ 0.10% )
Java 에는 Converter 라는 인터페이스가 있다. 해당 인터페이스는 A 타입 -> B 타입으로 변경을 할 때 사용한다. (ex. String -> Integer)
소스로 예를 들자면 "127.0.0.1:8080" 형태의 String 을 DTO 객체로 변환을 아래와 같이 처리가 가능하다.
1) IpPort DTO
import lombok.Getter;2) String -> IpPort DTO Converter
@Getter
@EqualsAndHashCode
public class IpPort {
private String ip;
private int port;
public IpPort(String ip, int port) {
this.ip = ip;
this.port = port;
}
}
3) 사용import hello.typeconverter.type.IpPort;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.convert.converter.Converter;
@Slf4j
public class StringToIpPortConverter implements Converter<String, IpPort> {
@Override
public IpPort convert(String source) {
log.info("convert source={}", source);
// 127.0.0.1:8080
String[] split = source.split(":");
String ip = split[0];
int port = Integer.parseInt(split[1]);
return new IpPort(ip, port);
}
}
@Test
void StringToIpPort() {
StringToIpPortConverter converter = new StringToIpPortConverter();
String source = "127.0.0.1:8080";
IpPort result = converter.convert(source);
assertThat(result).isEqualTo(new IpPort("127.0.0.1", 8080));
}