1. Java7
• 타입추론
List<String> list = new ArrayList<>();
• 이진수 리터럴, 숫자 리터럴에 _ 지원
• Switch문 문자열 가능
• try-with-resources 문 : AutoCloseable 인터페이스를 구현하는 클래스에 속하는 경우 다음과 같은 코드 패턴에 대한 단축 기능을
제공한다.
//JAVA 7 이전
//리소스를 연다
try {
리소스를 이용해 작업한다.
}
finally {
리소스를 닫는다.
}
//JAVA 7 이후
try (Resource res = ...) {
res를 이용해 작업한다.
}
//여러 리소스를...
WebFlux Error Handling
WebFlux Error HandlingdoOnError : 예외 발생시 특정행위를 수행한다.
onErrorReturn : 예외 발생시 특정 값을 return 한다.
onErrorResume : 예외 발생시 다른 Flux형태로 return 한다.
onErrorContinue : 예외 발생시 멈추지 않고 해당 영역만 skip 한다(별도 처리 하지 않는 이상 정상 응답을 return한다).
onErrorMap : 예외 발생시 다른 Exception으로 변환한다.
doOnErrorSource:
@RequestMapping("/error/test")
public Flux<Integer> getNum() {
return...
MongoDB Array Query(With MongoTemplate)
Mongo Collection 구조컬렉션명 : bookstore
{
"_id": "1234567890",
"books": [
{
"bookId": "1",
"storeList": ["용산", "구로", "신도림A", "신도림B"]
},
{
"bookId": "2",
"storeList": ["서울역", "영등포A"]
},
{
"bookId": "3",
"bookNm": "재건축",
"storeList": ["강남", "개포동"]
}
]
}
1. books element 추가Monogo...
Kafka session.timeout.ms와 max.poll.interval.ms의 차이
session.timeout.ms
컨슈머가 GroupCoordinator에게 해당시간내에 하트비트를 전송하지 않으면 리밸런싱이 일어난다. 컨슈머가 죽었으나 연결이 정상적으로 끊어지지 않는 상황이 발생하면 해당 값에 의해서 인지가 가능하다.
group.min.session.timeout.ms와 group.max.session.timeout.ms 범위 값만 설정가능
default : 10000(10초)
max.poll.interval.ms
다음 poll까지 대기하는 시간. 값이 300000ms인데 poll 내부로직이 300000ms가 넘어가는 경우 리밸런싱이 일어난다.
default : 300000(5분)
아래 코드...
26 Reasons Why Using Optional Correctly Is Not Optional
1. Never Assign Null to an Optional VariableAvoid:
// AVOID
public Optional<Cart> fetchCart() {
Optional<Cart> emptyCart = null;
...
}
Prefer:
// PREFER
public Optional<Cart> fetchCart() {
Optional<Cart> emptyCart = Optional.empty();
......
Why should one use Objects.requireNonNull()?
public class Foo {
private final Bar bar;
public Foo(Bar bar) {
Objects.requireNonNull(bar, "bar must not be null");
this.bar = bar;
}
}
The major advantages are:
as said, controlled behavior
easier debugging - because you throw up in the context of the object creation. At a point in time where you have a certain chance that your logs/traces...