최근 일부 누리꾼들은 자바 백엔드를 어떻게 독학하느냐고 물었고, 또 다른 방향으로 돌리고 싶었지만, 자바 백엔드가 도대체 무엇을 배워야 하는지, 어디서 배워야 하는지, 주류 자바 백엔드 기술 등을 잘 알지 못해 배우고 싶었지만, 또 막막해서 어디서부터 시작해야 할지 모르겠다. 나는 오는 사람의 경험으로 이 블로그에 쓴 것이 반드시 맞는 것은 아니지만, 모두 내가 자신의 경험에 근거하여 총결한 것으로, 당신들의 참고를 위해 한 것이다.
Java 기본 사항
Java 는 순수 객체 지향 프로그래밍 언어이므로 기본 구문 외에 패키지, 상속, 다형성 등의 OOP 특성을 이해해야 합니다. 또한 제네릭, 반사의 특성도 있습니다. Spring 코어의 Ioc 와 AOP 와 같은 많은 프레임 워크의 기술이 반사에 의존하고 있으며 Java 자체의 동적 에이전트도 반사를 사용하여 구현됩니다. 여기에 특별히 한 편을 썼습니다. 자바 동적 에이전트 원리 분석 또한 Java 의 일부 표준 라이브러리도 집합, I/O, 동시성과 같은 매우 일반적이며, 거의 웹 개발에 유비쿼터스이며, 면접에서 자주 묻는 경우가 많기 때문에 자바 백엔드를 독학하기 전에 이러한 기초를 잘 다질 수 있을 뿐만 아니라, Java8 의 몇 가지 새로운 특성도 중점적으로 집중해야 합니다. 예를 들면 LA 입니다.
책 추천에 관해서는 초보자가 처음부터' 자바 프로그래밍 사상' 을 들고 아먹는 것을 추천하지 않는다. 왜냐하면 당초 나는 그날 오후에 자바를 독학하기로 결정했고, 밤에는 이 책을 안고 아먹는 사람이었기 때문이다. 솔직히 말해서, 나는 그것이 무슨 말을 하고 있는지 정말 이해하지 못했다. 왜냐하면 나는 객체 지향 언어 프로그래밍의 기초가 전혀 없었기 때문에 이 책은 또 너무 심오하게 쓰여졌기 때문이다. (윌리엄 셰익스피어, 윈스턴, 독서명언) (윌리엄 셰익스피어, 윈스턴, 독서명언) 먼저 "Java 핵심 기술" 을 읽어보시기 바랍니다. 이 책은 비교적 이해하기 쉽고 초보자는 비교적 받아들일 수 있습니다.
비디오 추천에 관해서는, 나는 원래 어떤 손님의 피동 선생님이 말한 자바 기초 자습서를 듣고 있었는데, 비 선생님이 말한 것은 정말 생동적이고 재미있었다. 어느새 나를 자바 구덩이에 데리고 들어가 헤어날 수가 없었다. 때때로 나는 그의 동영상을 들을 때 웃음소리를 내는데, 아마도 나의 그 독학 단계에서 가장 재미있는 순간일지도 모른다. (윌리엄 셰익스피어, 햄릿, 독서명언)
데이터베이스
SQL 관련 정보: SQL 자습서, MySQL 자습서
몇 가지 기본 문법을 알게 된 후, 바로 비디오를 따라가는 선생님이 실전 연습 (예: 단일 테이블 조회, 다중 테이블 조회 등) 을 했습니다. Sql 을 배울 것을 제안합니다. 고수가 낮지 말고, 연습을 많이 해야 합니다. 읽기만 하면 됩니다. 업무에 간결한 SQL 을 쓰는 것이 매우 중요하기 때문입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 공부명언) 여기서 저는 프로젝트에서 SQL 문을 계속 따르고 있습니다. 다중 테이블 쿼리를 피하면 다중 테이블 쿼리를 피할 수 있고, 여러 문을 분리할 수 있으면 여러 문을 분리할 수 있습니다. 여기에는 다중 테이블 쿼리 성능과 데이터베이스 확장 문제가 관련되어 있기 때문입니다.
JDBC 관련 정보: JDBC 자습서,? JDBC 연결 개체 소스 코드 분석 가져오기
JDBC API 의 사용법을 이해해야 합니다. 사실, JDBC 를 구현하는 한 모든 데이터베이스 드라이버는 표준 API 를 통해 해당 드라이버를 호출할 수 있습니다. 드라이버가 어떻게 구현되는지 전혀 알 필요가 없습니다. 이것이 인터페이스 지향 프로그래밍의 이점입니다.
그리고 JDBC 에 대해서는 동영상을 직접 보고 이해했고, 동영상에 따라 Apache Dbutils 도구를 기반으로 트랜잭션 가젯을 만들었습니다. 저는 마인드맵을 사용하여
를 요약했습니다.웹 기반
일단 오픈 소스 중국 창시자 고구마는 문장 "초급 자바 웹 개발, 다양한 틀에서 멀리 떨어져 서블릿에서 개발" 을 썼다. 나는 그가 옳다고 생각한다. 오늘날 자바 개발에서는 많은 개발자들이 프레임워크를 사용하는 방법만 알고 있지만 웹의 지식점을 전혀 이해하지 못한다. 사실 틀은 많지만 기본적으로는 하나의 일식이다. (데이비드 아셀, Northern Exposure (미국 Java 드라마), 예술명언)
이 문장 는 Http 프로토콜 에 대해 명확하게 적혀 있다: Http 프로토콜
웹 기반 데이터 추천에 관해서는 당시' Tomcat 과 Java 웹 개발 기술에 대한 자세한 설명' 을 보고 전체 Java 웹 개발의 기술 지식 포인트를 자세히 설명했지만, 지금은 몇 가지 기술이 확실히 낡았다고 생각하지만, Java 웹 개발의 역사를 알 수 있는 것도 나쁘지 않다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), Northern Exposure (미국 TV 드라마), 웹 개발, 과학명언) 그래서 웹기반 방면에서 저는 모 손님의 최 선생님이 말하는' 완전 자바 웹 비디오 자습서' 를 보고 있습니다. 상세하고 생동감 있고 실전 프로젝트도 있습니다!
JSP 와 관련하여, 당신은 그것이 실제로 서블릿이라는 것을 알기만 하면 됩니다. 그것의 라벨 사용법에 관해서는, 나는 지금 인터넷에서 JSP 를 사용하는 회사가 거의 없기 때문에, 오래된 프로젝트를 제외하고는 직접 무시할 수 있다고 생각합니다. 지금은 모두 유행 전후 분리, 한 페이지 앱, 백엔드가 API 인터페이스만 하는 시대이기 때문에 시간이 소중하니 이 시간들을 서블릿 규격에 집중하세요. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 시간명언)
Tomcat 의 경우, 우리가 작성한 백엔드 프로젝트를 실행하기 위해 웹 컨테이너에 배포해야 하는 웹 컨테이너입니다. 이는 실제로 Http 를 따라 소켓 통신을 통해 클라이언트와 상호 작용하는 서버 측 프로그램입니다. Tomcat 구조 및 처리 요청 프로세스
웹 주류 프레임워크
자바 웹 프레임워크는 소털처럼 많은데, 경험이 있으시다면, 스핑, 스트럭트 2, 히베르나르트가 자바 삼마차라고 하는 웹 프레임워크를 쓸 수도 있습니다. 저는 그것이 아주 먼 일이라고 말하고 싶습니다. 저는 스트럭스 2 를 추천하지 않습니다. 처음에는 Spring, SpringMVC, Mybatis 만 시작하면 됩니다. 특히 Spring 프레임워크는 Spring 가족의 프레임워크가 모두 좋습니다.
그러나 한 가지 상기시키는 것은, 절대로 각종 틀에 빠져서는 안 되고, 여러 가지 용법으로 득의양양하게 우쭐대며, 그 이유를 알 수 없다는 것이다. (윌리엄 셰익스피어, 햄릿, 지혜명언)
Spring 의 핵심 아이디어는 IOC 와 AOP:
입니다Spring IOC 에 대한 이해
Spring 절단 평면 프로그래밍
SpringMVC 의 아이디어는 모든 요청이 요청 전달 및 제어를 위해 하나의 서블릿을 사용하는 것입니다. 이 서블릿은 dispatcher Servlet:
SpringMVC 초기화 프로세스
SpringMVC 처리 요청 프로세스
Mybatis 는 SQL 을 동적으로 조립하여 거의 모든 JDBC 코드와 매개 변수를 수동으로 설정하고 결과 세트를 가져오는 것을 방지합니다.
내 batis 입문 자습서
Mybatis 심층 얕은 시리즈
웹 프레임워크 고급
SSM 프레임워크를 사용하면 프레임워크도 이와 같다고 느낄 수 있습니다. Spring 에 대해 잘 알고 있다면' 짝퉁' 스프린트를 쓰려고 하는 마음이 생길 것입니다. 경량 웹 프레임워크는 주로 다음과 같은 기능을 갖추고 있습니다.
사용자 정의 구성 파일을 읽고 이를 사용하여 프레임워크를 초기화할 수 있습니다.
프로젝트를 관리하는 클래스의 객체 라이프 사이클을 관리하는 Bean 컨테이너를 갖추고 있습니다.
의존성 주입을 통해 클래스 간의 커플링을 줄일 수 있습니다.
AOP 기능을 통해 프로젝트를 가로로 프로그래밍할 수 있으며, 기존 코드를 변경하지 않고 비즈니스 논리를 늘릴 수 있습니다.
MVC 프레임워크 모드를 갖추고 있습니다.
실제로 SSM 을 제외한 웹 프레임워크는 백가제라고 할 수 있는데, 그중에서도 스프링 온 가족이 가장 눈부시게 빛나고 있습니다. 여기서는 SpringBoot 과 SpringCloud 라는 두 가지 Spring 패밀리 프레임워크를 적극 추천합니다.
SpringBoot 은 Spring 구성의 단점을 보완하며 더 이상 복잡한 XML 에 힘쓰지 않아도 됩니다. Java 백엔드 개발의 전복자라고 할 수 있습니다. "Java EE 개발의 전복자: SpringBoot 실전"
SpringBoot 빌드 웹 프로젝트
SpringBoot 자동 구성 소스 분석
SpringBoot Starter
Spring-boot-starter-tutorial
SpringCloud 는 프로젝트를 업무별로 하나의 마이크로서비스로 나눌 수 있는 마이크로서비스 아키텍처로, 각 마이크로서비스를 독립적으로 배포하여 서비스 간에 조율할 수 있습니다. 프로젝트가 커지면서 유지 관리가 점점 어려워지면서 프로젝트를 여러 마이크로서비스로 분할하거나, 별도로 유지 관리하거나, 별도로 배포하거나, 프로젝트의 서로 다른 업무 간의 커플링을 줄일 수 있습니다.
추천서' Spring Cloud 와 Docker 마이크로서비스 아키텍처 실전' 은 Docker 와 마이크로서비스를 완벽하게 결합한 책입니다.
스프링 클라우드 중국어 홈페이지
역사상 가장 간단한 스프링 클라우드 자습서
Spring Cloud 에 대해 제가 쓴 블로그:
SpringCloud 마이크로서비스 아키텍처 서비스 등록 및 검색
SpringCloud 마이크로서비스 아키텍처의 서비스 소비자
SpringCloud 마이크로서비스 아키텍처 회로 차단기
SpringCloud 마이크로서비스 아키텍처의 서비스 게이트웨이
기타 기술
Redis: 동시성이 많은 요청이 있을 때 Redis 에 데이터를 캐시하는 고성능 키 값 데이터베이스로, 서버의 응답 성능을 향상시키고 데이터베이스에 대한 부담을 크게 덜어줍니다.
Redis 중국어 홈페이지
Redis 자습서
Git: 세계 최고의 분산 버전 제어 시스템으로 모든 초보자가 명령줄부터 Git 를 사용하는 것이 좋습니다! Stormzhang Public 번호' googdev' 를 주시하고' github' 에 답하면 GitHub 자습서 전자책 한 부를 무료로 받을 수 있어 잘 썼다고 생각합니다.
Git 공식 홈페이지
가장 완벽한 Git 자습서
Git 에서 자주 사용하는 몇 가지 명령
Maven: 프로젝트 간의 의존성을 XML 을 통해 완벽하게 구성하는 프로젝트 구축 도구입니다. 플러그인을 컴파일하여 프로젝트를 바이트 코드 파일로 컴파일할 수 있습니다. 비슷한 Gradle 도 좋은 선택이다.
Maven 의 pom.xml 파일 상세 정보
Linux: 최소한 Linux 환경에 프로젝트를 배포하는 데 일반적으로 사용되는 명령이 필요합니다.
리눅스 명령어 백과 사전
가장 완벽한 SSH 연결 원격 터미널 자습서
Docker: 프로젝트 배치 신기네요. 설명할 겨를이 없어요. 제 Docker 시리즈 블로그를 보세요. Docker 여행을 시작하세요. 추천 서적' Docker 기술 입문과 실전', 중국 최초의 Docker 저작!
도커 실전 (a)
도커 실전 (2)
도커 실전 (3)
Docker-deploy-tutorial
개발 도구
일을 잘하려면 먼저 그 기구를 이용해야 하는데, 다음은 내가 추천하는 개발 도구들 중 몇 가지이다.
Intellij IDEa: 자바 개발 최고의 ide, 이것은 인정, 나는 처음에는 Eclipse 를 사용했고, 나중에 Intellij IDEA 를 사용했고, Eclipse 가 똥이라는 것을 알게 되었기 때문에, 나는 사람들이 Eclipse 를 사용하지 말라고 조언했다, 직접 intellie
IntelliJ IDEA 사용 자습서
Iter m2: MAC OS 최고의 터미널!
Iterm2 사용자 안내서
Chrome: 인생은 짧습니다. Chrome 으로 설명해주세요. 빨리 타세요!
Postman: 사용하기 쉬운 인터페이스 디버깅 도구입니다.