Ava 개발 개요:
웹 애플리케이션 개발에 Java를 사용하는 것은 거의 20년의 역사를 가지고 있으며 원래 Servlet1.0에서 수많은 프레임워크, 라이브러리 및 전체 생태계로 단계적으로 발전해 왔습니다. 이렇게 오랜 개발 기간을 거쳐 성숙한 언어인 Java도 매우 성숙한 생태계로 발전했습니다. 이것이 바로 많은 기업이 Java를 서버측 개발의 주류 언어로 사용하고 Java가 여전히 매우 활발한 사용자로 남아 있는 이유입니다. 베이스. 그러나 이 생태계는 복잡하며 매우 간단한 Java 웹 애플리케이션에는 다음과 같은 기술이 적용될 수 있습니다.
Java 개발은 두 진영으로 나뉘는데, 하나는 Oracle로 대표됩니다. Java EE 캠프는 웹 개발을 위한 공식 참조 표준입니다. 핵심 기술로는 Servlet, EJB, JMS, JSF, JDBC/JPA, JAXB, JAX-WS 등이 있습니다. 또 다른 진영은 오픈소스 커뮤니티와 Pivotal로 대표되는 Spring 캠프로, 핵심 기술로는 Spring Framework, Spring MVC, Spring Data, Spring Security 등이 있습니다.
Spring은 종속성 주입을 위한 Bean 컨테이너로 시작하여 점차 Java 애플리케이션 개발을 위한 주류 프레임워크로 발전했습니다. Java EE는 비대하고 복잡하며 사용하기 어려운 구조로 인해 많은 Java 프로그래머에 의해 버려졌습니다. CDI(컨텍스트 의존성 주입)는 Java EE6부터 도입되었으며, Java EE의 설계 아이디어는 매우 학문적이며, Gavin King 등은 업계 요구 사항과 동떨어져 있어 Java EE 개발을 매우 복잡하게 만듭니다. JSF는 자바의 아버지인 제임스 고슬링(James Gosling)으로부터 비판을 받기도 했습니다. 반대로, Spring 커뮤니티에서는 점점 더 현대적인 애플리케이션 개발 방법이 다양한 Spring 프로젝트에 통합되고 있습니다.
Spring Boot란 무엇인가요?
Spring Boot는 커뮤니티 피드백을 기반으로 하는 프로젝트입니다. Spring Boot는 Spring에서 가장 영향력 있는 프로젝트 중 하나이며 전체 Java 커뮤니티에서도 마찬가지입니다. 적어도 지난 5년은요. Spring Boot에는 주로 다음 기능이 포함됩니다.
Tomcat, Jetty 또는 Undertow를 서블릿 컨테이너로 직접 포함합니다. 이제부터는 애플리케이션을 war로 패키징한 후 애플리케이션 서버에 업로드할 필요가 없습니다.
패키지 관리에 매우 편리할 수 있는 스타터 POM을 제공하여 jar hell 또는 종속성 지옥을 크게 줄입니다.
Spring 프레임워크를 자동으로 구성하여 프로그래머의 시간과 에너지를 절약하여 프로그래머가 집중할 수 있도록 합니다. 비즈니스 로직 코드 작성 시
Spring Boot에는 프로덕션 환경에서 사용할 수 있는 프로그램 상태 정보와 상태가 포함되어 있어 타사 시스템이 필요하지 않습니다. 동시에 자동 코드 생성 없이 애플리케이션이 외부 구성 정보를 매우 편리하게
읽을 수 있습니다. 프레임워크를 구성하기 위해 xml을 사용할 필요가 없습니다
Spring Boot가 파괴적인 이유는 무엇입니까?
Spring Boot가 파괴적인 이유는 Java 애플리케이션 개발 모델을 완전히 바꾸기 때문입니다. 과거에는 Spring 애플리케이션을 개발할 때 Hibernate와 Spring이 함께 작동하도록 구성할 클래스와 뷰 레이어를 표시하는 템플릿을 제어하기 위해 뷰 확인자를 구성하는 방법을 알아야 했습니다. 많은 코드를 작성한 후에는 비즈니스 로직을 한 줄도 작성하지 않고 Spring 프레임워크 자체의 구성만 다루고 있다는 것을 종종 발견합니다. 개발이 완료된 후에도 WebSphere, Weblogic 또는 JBoss와 같은 매우 무거운 애플리케이션 서버에 배포하는 것은 말할 것도 없고 배포 문제도 고려해야 합니다. Tomcat 또는 Jetty와 같은 경량 컨테이너에 배포하더라도 구성 방법을 알아야 합니다. 컨테이너, 구성 파일 수정 방법 등 그리고 여러 애플리케이션이 동일한 Tomcat에 배포되면 충돌이 자주 발생합니다. 이러한 문제를 해결하기 위해 많은 노력을 기울여도 프로그램이 성공적으로 배포된 후에는 프로그램의 실행 상태를 이해하기 어렵습니다. 애플리케이션이 실행되는 방식, 애플리케이션에 포함된 매개변수, 환경 변수가 무엇인지 알기 위해 많은 타사 도구를 구성해야 할 수도 있습니다. Spring이 종속성 주입 문제를 해결하고 일부 MVC 프로세스를 단순화하는 데 도움이 되었지만 Spring 프레임워크 자체에는 점점 더 많은 것들이 통합되어 구성이 점점 더 어려워지고 유지 관리 비용이 급등했습니다. Java 프로그래머는 Python, Ruby 또는 JavaScript 프로그래머가 몇 가지 명령을 입력하여 일부 라이브러리를 설치한 다음 간단히 코드 몇 줄을 입력하고, 플라스크와 같은 일부 프레임워크를 도입한 다음 간단한 API를 직접 실행하는 것을 자주 봅니다. 현재 Java 프로그래머는 Maven에서 어떤 라이브러리를 사용할지, 코드에서 이를 어떻게 구성할지 계속 연구하고 있을 수 있습니다. 모두가 생각하는 표현은 다음과 같을 것입니다.
전통적인 Spring 개발과 Spring Boot 애플리케이션 개발
다음으로 전통적인 Spring 애플리케이션 개발을 비교하겠습니다. 구체적인 예와 Spring Boot 애플리케이션 개발. Hello World REST API를 개발하는 경우 기존 Spring 개발에서는 이를 수행해야 합니다.
1. 패키지 관리에 Maven을 사용하는 경우 다음과 같이 pom.xml을 작성합니다.
위에서 볼 수 있듯이 간단한 hello world REST API를 작성하기 위해 Spring Core, Spring Web, Spring Web MVC, Java Servlet 및 Jackson과 같은 많은 패키지 종속성을 도입했습니다. 좀 더 복잡한 프로그램에서는 이 폼이 어떤 모습일지 상상할 수 있습니다. . .
2. 다음과 같이 HelloWorldInitializer 클래스를 작성합니다
이미 Servlet 3.0 이전에 Spring을 구성하기 위해 XML을 사용했던 친구들이 있습니다. 아마도 무너졌을 겁니다.
3. HelloWorldConfiguration 클래스 작성
우리 클래스에는 단 한 줄의 비즈니스 로직도 없습니다. . .
4. HelloWorldRestController 작성 시작
Spring Boot를 사용하여 Java 애플리케이션 개발 전복
웹 애플리케이션 개발에 Java를 사용해 왔습니다. 거의 20년 10년이 넘는 역사를 가지고, 원래의 Servlet 1.0에서 수많은 프레임워크, 라이브러리 및 전체 생태계로 단계적으로 발전해 왔습니다. 이렇게 오랜 개발 기간을 거쳐 성숙한 언어인 Java도 매우 성숙한 생태계로 발전했습니다. 이것이 바로 많은 기업이 Java를 서버측 개발의 주류 언어로 사용하고 Java가 여전히 매우 활발한 사용자로 남아 있는 이유입니다. 베이스.
저자 : 코더의 자기수양에 대하여 출처 : Tuiku|2016-10-14 14:16
집
공유
Java 개발 개요:
우리는 거의 20년 동안 웹 애플리케이션 개발에 Java를 사용해 왔으며 원래 Servlet1.0에서 수많은 프레임워크로 단계적으로 발전해 왔습니다. 이제 도서관과 전체 생태계를 살펴보겠습니다. 이렇게 오랜 개발 기간을 거쳐 성숙한 언어인 Java도 매우 성숙한 생태계로 발전했습니다. 이것이 바로 많은 기업이 Java를 서버측 개발의 주류 언어로 사용하고 Java가 여전히 매우 활발한 사용자로 남아 있는 이유입니다. 베이스. 그러나 이 생태계는 복잡하며 매우 간단한 Java 웹 애플리케이션에는 다음 기술을 적용할 수 있습니다.
Java 개발은 두 개의 캠프로 나뉘는데, 하나는 Oracle Java EE 캠프로 대표됩니다. 웹 개발을 위한 공식 참조 표준입니다. 핵심 기술로는 Servlet, EJB, JMS, JSF, JDBC/JPA, JAXB, JAX-WS 등이 있습니다. 또 다른 진영은 오픈소스 커뮤니티와 Pivotal로 대표되는 Spring 캠프로, 핵심 기술로는 Spring Framework, Spring MVC, Spring Data, Spring Security 등이 있습니다.
Spring은 종속성 주입을 위한 Bean 컨테이너로 시작하여 점차 Java 애플리케이션 개발을 위한 주류 프레임워크로 발전했습니다. Java EE는 비대하고 복잡하며 사용하기 어려운 구조로 인해 많은 Java 프로그래머에 의해 버려졌습니다. CDI(컨텍스트 의존성 주입)는 Java EE6부터 도입되었으며, Java EE의 설계 아이디어는 매우 학문적이며, Gavin King 등은 업계 요구 사항과 동떨어져 있어 Java EE 개발을 매우 복잡하게 만듭니다. JSF는 자바의 아버지인 제임스 고슬링(James Gosling)으로부터 비판을 받기도 했습니다. 반대로, Spring 커뮤니티에서는 점점 더 현대적인 애플리케이션 개발 방법이 다양한 Spring 프로젝트에 통합되고 있습니다.
Spring Boot란 무엇인가요?
Spring Boot는 커뮤니티 피드백을 기반으로 하는 프로젝트입니다. Spring Boot는 Spring에서 가장 영향력 있는 프로젝트 중 하나이며 전체 Java 커뮤니티에서도 마찬가지입니다. 적어도 지난 5년은요. Spring Boot에는 주로 다음 기능이 포함됩니다.
Tomcat, Jetty 또는 Undertow를 서블릿 컨테이너로 직접 포함합니다. 이제부터는 애플리케이션을 war로 패키징한 후 애플리케이션 서버에 업로드할 필요가 없습니다.
패키지 관리에 매우 편리할 수 있는 스타터 POM을 제공하여 jar hell 또는 종속성 지옥을 크게 줄입니다.
Spring 프레임워크를 자동으로 구성하여 프로그래머의 시간과 에너지를 많이 절약하고 프로그래머가 다음 작업을 수행할 수 있도록 합니다. 비즈니스 로직 코드 작성에 집중
Spring Boot에는 프로덕션 환경에서 사용할 수 있는 프로그램 상태 정보와 상태가 포함되어 있어 타사 시스템이 필요하지 않습니다. 동시에, 코드를 자동으로 생성할 필요 없이 애플리케이션이 외부 구성 정보를 매우 편리하게
읽을 수 있습니다. 프레임워크를 구성하기 위해 xml을 사용할 필요가 없습니다
Spring Boot가 왜 전복적인가요?
Spring Boot가 왜 파괴적인가? Java 애플리케이션 개발 모델을 완전히 바꾸기 때문입니다. 과거에는 Spring 애플리케이션을 개발할 때 Hibernate와 Spring이 함께 작동하도록 구성할 클래스와 뷰 레이어를 표시하는 템플릿을 제어하기 위해 뷰 확인자를 구성하는 방법을 알아야 했습니다. 많은 코드를 작성한 후에는 비즈니스 로직을 한 줄도 작성하지 않고 Spring 프레임워크 자체의 구성만 다루고 있다는 것을 종종 발견합니다. 개발이 완료된 후에도 WebSphere, Weblogic 또는 JBoss와 같은 매우 무거운 애플리케이션 서버에 배포하는 것은 말할 것도 없고 배포 문제도 고려해야 합니다. Tomcat 또는 Jetty와 같은 경량 컨테이너에 배포하더라도 구성 방법을 알아야 합니다. 컨테이너, 구성 파일 수정 방법 등 그리고 여러 애플리케이션이 동일한 Tomcat에 배포되면 충돌이 자주 발생합니다. 이러한 문제를 해결하기 위해 많은 노력을 기울여도 프로그램이 성공적으로 배포된 후에는 프로그램의 실행 상태를 이해하기 어렵습니다. 애플리케이션이 실행되는 방식, 애플리케이션에 포함된 매개변수, 환경 변수가 무엇인지 알기 위해 많은 타사 도구를 구성해야 할 수도 있습니다. Spring이 종속성 주입 문제를 해결하고 일부 MVC 프로세스를 단순화하는 데 도움이 되었지만 Spring 프레임워크 자체에는 점점 더 많은 것들이 통합되어 구성이 점점 더 어려워지고 유지 관리 비용이 급등했습니다. Java 프로그래머는 Python, Ruby 또는 JavaScript 프로그래머가 몇 가지 명령을 입력하여 일부 라이브러리를 설치한 다음 간단히 코드 몇 줄을 입력하고, 플라스크와 같은 일부 프레임워크를 도입한 다음 간단한 API를 직접 실행하는 것을 자주 봅니다. 현재 Java 프로그래머는 Maven에서 어떤 라이브러리를 사용할지, 코드에서 이를 어떻게 구성할지 계속 연구하고 있을 수 있습니다. 모두의 마음 속 표현은 이렇겠죠.
(이때 자바 프로그래머들의 심리적 그림자 지대를 물어보세요)
Java의 시대가 왔습니다 프로그래머들은 자랑스럽고 자랑스럽습니다!
전통적인 Spring 개발 vs. Spring Boot 애플리케이션 개발
다음으로, 전통적인 Spring 애플리케이션 개발과 Spring Boot 애플리케이션 개발을 구체적인 방법을 통해 비교하겠습니다. 예. Hello World REST API를 개발하는 경우 기존 Spring 개발에서는 이를 수행해야 합니다.
1. 패키지 관리에 Maven을 사용하는 경우 다음과 같이 pom.xml을 작성합니다.
위에서 볼 수 있듯이 간단한 hello world REST API를 작성하기 위해 Spring Core, Spring Web, Spring Web MVC, Java Servlet 및 Jackson과 같은 많은 패키지 종속성을 도입했습니다. 좀 더 복잡한 프로그램에서는 이 폼이 어떤 모습일지 상상할 수 있습니다. . .
2. 다음과 같이 HelloWorldInitializer 클래스를 작성합니다
이미 매우 간단한 Java Config입니다. Servlet 3.0 이전에 Spring을 구성하기 위해 XML을 사용했던 친구들은 이제 접었을 수도 있습니다. .
3. HelloWorldConfiguration 클래스 작성
우리 클래스에는 비즈니스 로직이 단 한 줄도 없습니다. . .
4. 실제로 HelloWorldRestController 작성 시작
5. Tomcat 다운로드6. Tomcat에 배포7. localhost:8080/HelloWorld 드디어 Hello World를 봤습니다...이 글을 쓰다 지쳤습니다. . . 다음으로 Java 베테랑이 Spring Boot의 매력을 경험하도록 안내합니다.
여기서 SpringBoot에 대해 간단히 설명하겠습니다. SpringBoot는 Java 개발을 간단하고 효과적으로 만들어줄 뿐만 아니라, 더 중요하게도 SpringBoot는 Java 개발에 대한 우리의 이해를 완전히 뒤바꿔 놓았습니다. 우리는 처음으로 "Java 개발을 하면 이런 일이 가능하다"는 느낌을 받았습니다. SpringBoot를 사용하면 Java 프로그래머는 비즈니스 로직에 더 집중하고 보다 민첩한 개발을 수행할 수 있습니다.