순환참조의 문제점
컴포넌트 간의 명확한 경계가 사라지고 연쇄적으로 변경에 의한 영향이 발생
@Autowired
private User user;
private User user;
@Autowired
public void setUser(User user) {
this.user = user;
}
private User user;
public 클래스명(User user) {
this.user = user;
}
@RequiredArgsConstructor
public class User{
private final User user;
}
메타문자란?
문자를 설명하기 위한 문자로, 문자의 구성을 설명하기 위해 원래의 의미가 아닌 다른 의미로 쓰이는 문자
"abc".matches("[a-z]") // true
"abc123".replaceAll("[a-z]","*") // ***123
```java
"123a456".split("[a-z]") // ["123","456"]
```
Pattern 클래스
Pattern pattern = Pattern.compile("^[0-9]*$");
Pattern.matches("^[0-9]*$", str)
Pattern.compile("^[0-9]*$").pattern()
Matcher 클래스
String txt = "1487안녕";
String patternString = "^[0-9]+";
// 1) 문자열 형태의 정규표현식 문법을 정규식 패턴으로 변환
Pattern pattern = Pattern.compile(patternStr);
// 2) 패턴 객체로 matcher 메서드를 통해 문자열을 검사하고 필터링된 결과를 매처 객체로 반환
Matcher matcher = pattern.matcher(txt);
// 3) 정규식 필터링된 결과를 담은 matcher에서 메소드를 통해 결과를 출력
matcher.find(); // 매칭된 결과가 있는지? : true
matcher.group(); // 매칭된 부분을 반환 : 1487