JD.com 구매 Dangdang 구매
칼럼의 모든 코드는 Java 8 + Spring Boot 2.2.1.RELEASE + Spring Cloud Greenwich.SR4 + Spring Data Moore-SR4를 기반으로 개발되었으며, 종속성 관리는 Maven을 기반으로 합니다.
각 사례는 상호 간섭을 피하기 위해 독립적으로 시작할 수 있는 독립적인 SpringBoot 또는 Java 명령줄 애플리케이션이지만 Maven POM을 공유합니다.
소스 코드를 다운로드한 후 먼저 루트 디렉터리에서 docker-compose up 명령을 실행하여 관련 MySQL, Redis, ES, RabbitMQ 및 기타 시스템을 Docker를 통해 실행한 후 애플리케이션을 시작합니다.
대부분의 열은 MySQL이라는 하나의 구성 요소에만 의존합니다. docker-compose를 시작하는 데 어려움이 있는 경우 먼저 ES 및 RabbitMQ에 대한 주석과 같이 docker-compose.yml의 관련 구성 요소에 주석을 달고 나서 시작할 수 있습니다. 나중에 디자인 장에서 사용해야 하며 동시에 pom.xml에서 관련 SpringBoot Starter 모듈을 삭제해야 합니다.
소스 코드 루트 디렉토리에는 readme.md 마크다운 파일이 있습니다. 각 기사에 해당하는 소스 코드 위치를 나열하는 디렉토리가 있습니다. 동시에 각 소스 코드 패키지 아래에는 각 항목을 나열하는 readme.md 파일이 있습니다. 기사. 이 기사의 각 섹션의 소스 코드 패키지 이름입니다.
소스 코드의 대부분의 경우 잘못된 구현과 올바른 구현을 나타내기 위해 잘못된 명명 방법을 사용합니다. 구현을 책의 내용과 비교하여 이해할 수 있습니다.
일부 사례(예: SQL 인덱스 기사)는 현재 시간을 기준으로 테스트 데이터를 생성하므로 기사의 테스트 결과가 로컬에서 재현될 수 있다는 보장이 없으며 테스트 사례를 직접 조정해야 합니다.
링크를 클릭하여 각 섹션의 코드 폴더를 입력하세요.
각 폴더에는 각 섹션의 각 섹션의 소스 코드 폴더를 나열하는 readme.md 파일도 있습니다.
[Thinking]은 생각과 토론에 관련된 코드를 나타냅니다.
[확장]은 확장 읽기와 관련된 코드를 나타냅니다.
[보충] 책에는 나오지 않는 기타 코드를 더 많이 나타냅니다.
1.0: 자바8
2.1 동시 도구 라이브러리를 사용한다고 해서 스레드 안전 문제가 없다는 의미는 아닙니다.
2.2 코드 잠금: "잠금"을 걱정하지 마세요: 잠금
2.3 스레드 풀: 비즈니스 코드에서 가장 일반적으로 사용되며 가장 오류가 발생하기 쉬운 구성 요소: 스레드 풀
2.4 연결 풀: 연결 풀이 당신에게 해를 끼치게 하지 마세요: 연결 풀
2.5 HTTP 호출: 시간 초과, 재시도 및 동시성을 고려했습니까? httpinvoke
2.6 비즈니스 코드에서 Spring 선언적 트랜잭션의 20%가 올바르게 처리되지 않을 수 있습니다.
2.7 데이터베이스 인덱스: 인덱스는 만병통치약이 아니다: sqlindex
2.8 평등의 문제: 당신이 프로그램에 참여하고 있는지 확인하는 방법: 평등
2.9 수치 계산: 정밀도, 반올림 및 오버플로 문제에 주의: 수치 계산
2.10 컬렉션 클래스: 함정이 가득한 리스트 연산: 컬렉션
2.11 Null 값 처리: 명확하지 않은 Null 및 귀찮은 Null 포인터: Nullvalue
2.12 예외 처리: 뭔가 잘못됐을 때 당황하지 마세요: 예외
2.13 로깅: 로깅은 생각만큼 간단하지 않습니다.
2.14 파일 IO: 효율적이고 올바른 파일 읽기 및 쓰기를 달성하는 것은 쉽지 않습니다. io
2.15 연재: 계속해서 같은 사람인가?
2.16 Java 8의 날짜 및 시간 클래스를 잘 활용하고 "세 번째로 오래된" 함정인 날짜/시간을 피하세요.
2.17 "자동 전송"으로 OOM이 불가능하다고 생각하지 마세요: oom
2.18 리플렉션, 주석, 제네릭이 OOP: 고급 기능을 만날 때 어떤 위험이 있습니까?
2.19 스프링 프레임워크: IoC와 AOP는 확장의 핵심이다: springpart1
2.20 Spring Framework: 우리를 위해 많은 작업을 수행했지만 복잡성도 가져왔습니다. springpart2
3.1 코드 중복: 코드 중복을 해결하는 세 가지 트릭: 중복코드
3.2 인터페이스 디자인: 시스템 간 대화 언어는 통일되어야 합니다: apidesign
3.3 캐시 디자인: 캐싱은 금상첨화일 수도 있고 부상을 가중시킬 수도 있습니다. 캐시 디자인
3.4 비즈니스 코드가 작성되면 생산 준비가 완료되었음을 의미합니까? 생산 준비
3.5 비동기 처리는 사용하기 쉽지만 잘못 사용하기는 매우 쉽습니다: asyncprocess
3.6 데이터 저장: NoSQL과 RDBMS는 어떻게 서로를 보완하고 보완합니까? :nosqluse
4.1 데이터 소스: 클라이언트 측의 어떤 것도 신뢰할 수 없습니다: clientdata
4.2 보안: 돈에 관해서는 스와이프 방지, 제한적이고 강력한 보호를 고려해야 합니다.
4.3 데이터와 코드: 데이터는 데이터, 코드는 코드: dataandcode
4.4 민감한 데이터를 올바르게 저장하고 전송하는 방법: 민감한 데이터
5.1 Java 애플리케이션 문제를 찾기 위한 문제 해결 루틴: 해당 없음
5.2 Java 문제를 분석하고 찾으려면 다음 도구를 잘 활용해야 합니다. 문제 해결 도구
5.3 Java 프로그램을 가상 머신에서 Kubernetes로 마이그레이션할 때 발생할 수 있는 몇 가지 함정: 해당 없음
소스 코드가 도움이 되었다고 생각하신다면 Star에 오신 것을 환영합니다.