소개
프로젝트가 소규모 프로젝트이든 엔터프라이즈 수준의 응용 프로그램이든 프로젝트를 시작하기 전에 주요 측면 중 하나는 종속성 관리입니다. 소규모 애플리케이션에 대한 종속성 관리를 수동으로 수행하는 것은 어려운 작업이 아니지만 복잡한 응용 프로그램의 경우 모든 프로젝트 종속성을 수동으로 관리하는 것이 이상적이지 않으며 많은 문제와 시간 낭비가 발생하기 쉬우므로 프로젝트의 다른 중요한 측면에 사용할 수 있습니다.
Spring Boot의 기본 원칙 중 하나는 비슷한 문제를 해결하는 것입니다. Spring Boot Starter는 모든 수준의 응용 프로그램에 쉽게 포함될 수있는 편리한 종속성 설명기 세트입니다. 이 스타터는 스프링 관련 기술의 부팅 프로세스이며 더 이상 종속성에 대해 걱정할 필요가 없으며 Spring Boot 스타터가 자동으로 관리합니다.
스타터에는 프로젝트를 신속하게 실행하는 데 필요한 많은 종속성이 포함되어 있으며 일관되고 지원되는 관리 전이 종속성 세트가 있습니다.
1. 왜 우리는 우선이 필요합니까?
Spring Boot로 응용 프로그램을 개발하기 시작했을 때, 기본적인 질문 중 하나는 왜 Spring Boot 스타터가 필요한가? 아니면이 스타터들이 내 앱에서 어떻게 나를 도와 주나요?
앞에서 언급 했듯이이 스타터는 응용 프로그램을 부팅하는 데 사용됩니다. 응용 프로그램에 올바른 스타터를 포함하는 것만 큼 필요한 것은 Spring Boot가 선택한 스타터에 필요한 모든 종속성이 클래스 경로에 있는지 확인합니다.
더 명확하게 이해하려면 예를 들어 간단한 Spring Web MVC 응용 프로그램을 구축하고자하며 웹 애플리케이션 코드를 작성하기 전에 다음 사항을 고려해야합니다.
Spring Boot 스타터를 사용하여 Spring MVC 웹 응용 프로그램을 부팅하는 것은 매우 간단합니다. POM.XML에 Spring-Boot-Starter-Web를 포함해야합니다.
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터 -web </artifactid> </fectionency>
POM.XML의 위의 항목은 필요한 모든 종속성이 클래스 경로에 있어야하므로 웹 응용 프로그램 개발을 시작할 준비가되었습니다.
현재 Spring Boot는 약 50 명의 스타터를 제공하며, 여기에는 타사 스타터가 포함되지 않습니다. 우선 업데이트 목록은 Spring Boot 스타터를 참조하십시오.
다음으로, 나는 일반적인 스타터를 소개 할 것입니다.
2. 웹 스타터
이것은 가장 일반적으로 사용되는 Spring Boot 스타터 중 하나이며, 이는 Spring 웹 응용 프로그램 (REST 포함)을 작성하는 데 필요한 모든 종속성이 CalsSpath에 포함되도록하며 Tomcat-Starter를 기본 서버로 추가하여 웹 애플리케이션을 실행할 수 있습니다. 응용 프로그램에 웹 스타터를 포함하려면 Pom.xml에 다음 항목을 추가하십시오.
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터 -web </artifactid> </fectionency>
이제 스프링 MVC 컨트롤러를 만들 수 있습니다
@RestController public class samplecontroller {@requestmapping ( "/greeting") StringHello () {return "HelloWorld!"; }}응용 프로그램을 실행하고 http : // localhost : 8080/greeting을 방문하는 경우 응답으로 "Hello Word"를 얻을 수 있어야합니다. 최소한의 코드로 REST 컨트롤러를 만들었습니다.
3. 데이터 JPA 스타터
대부분의 응용 프로그램에는 일부 지속 메커니즘이 필요하며 JPA는 지속성의 표준이며 Spring Boot 스타터는 JPA 스타터와 함께 제공되며 이러한 JPA 의존성을 수동으로 구성 할 필요는 없지만 JPA 스타터를 응용 프로그램에 추가하여 쉽게 달성 할 수 있습니다.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링-부트 스타터-데이터 -jpa </artifactid> </dependency> <groupid> com.h2database </groupid> <artifactid> h2 </artifactid> </dependency>
Spring JPA 스타터는 H2, Derby 및 HSQLDB에 대한 자동 지원을 제공합니다. JPA 스타터를 사용하여 JPA 샘플 애플리케이션을 만드는 것이 얼마나 쉬운 지 살펴 보겠습니다.
@EntityPublic 클래스 사용자 {@id @generatedValue (전략 = GenerationType.Auto) 개인 긴 ID; 개인 문자열 firstName; 개인 문자열 마지막 이름; Protected User () {} public user (String FirstName, String lastName) {//this.id = id; this.firstName = FirstName; this.lastname = lastName; } public long getId () {return id; } public void setId (long id) {this.id = id; } public String getFirstName () {return firstName; } public void setFirstName (String FirstName) {this.firstName = FirstName; } public String getLastName () {return lastName; } public void setLastName (String lastName) {this.lastName = lastName; } @override public String toString () {return "user {" + "id =" + id + ", firstName = '" + firstName +'/' + ", lastName =' + lastName + '/' ' +'} '; }}다음은 사용자 보고서입니다.
public interface userreepositoryextends crudrepository <user, long> {list <user> findUserByLastName (String lastName);}다음으로 우리는 다음과 같이 코드를 테스트 할 수 있습니다.
@runwith (springrunner.class) @springboottestpublic class jpademoApplicationTests {@autowired userrepository userrepository; @test public void contextloads () {user user = userrepository.save (새 사용자 ( "demo", "user")); user searchuser = userreepository.findone (user.getid ()); AssertNotnull (SearchUser); AsserTequals (user.getFirstName (), searchUser.getFirstName ()); }}위의 코드에서 보았 듯이 더 이상 JPA 스타터를 추가하여 해당 데이터베이스 구성 또는 추가 데이터베이스 구성을 지정할 필요가 없습니다. 구성이나 인코딩없이 많은 상자 기능을 얻을 수 있습니다.
필요한 경우 언제든지 이러한 구성을 수정하거나 사용자 정의 할 수 있습니다.
4. 메일 스타터
응용 프로그램에서 이메일을 보내는 것은 매우 일반적인 작업이며 이제 모든 응용 프로그램은 시스템에서 이메일을 보내야합니다. Spring Boot Mail 스타터는 모든 복잡성을 숨겨서이 기능을 쉽게 처리 할 수있는 방법을 제공합니다.
앱에 메일 스타터를 추가하여 이메일 지원을 활성화 할 수 있습니다.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-메일 </artifactid> </fectionency>
MailGun을 SMTP 서버로 사용하고 있습니다. 다음은 Application.Properties 파일에 추가 된 SMTP 세부 정보가 있습니다.
spring.mail.host=smtp.mailgun.orgspring.mail.username=postmas Operties.mail.transport.protocol = smtpspring.mail.properties.mail.smtp.port = 587spring.mail.properties.mail.smtp.auth = true
당사의 이메일 서비스 수업은 이메일 전송을 담당합니다.
@ComponentPublic 클래스 JavaEmailService {private javamailsender mailsender; 공개 javaemailservice (Javamailsender MailSender) {this.mailsender = mailsender; } public void sendEmail () {mimemeSagepreparator messagepreparator = mimemessage-> {mimeMessageHelper helper = new MimeMessageHelper (mimemesage); Helper.setfrom ( "[email protected]"); Helper.setto ( "[email protected]"); Helper.setSubject ( "샘플 메일 주제"); Helper.settext ( "테스트 이메일"); }; MailSender.Send (MessagePreparator); }}우리는 Spring에서 제공 한 Javamailsender를 사용하여 이메일을 보냅니다. Junit 테스트 코드는 다음과 같습니다.
@runwith (springrunner.class) @springboottestpublic class emailtest {@autowired javaemailservice javaemailservice; @test public void sendemail () {javaemailservice.sendemail (); }}마찬가지로 간단한 코드 및 구성만으로 간단한 이메일을 보내면서 Spring Boot Mail Starter는 실제 문제를 신속하게 해결하기 위해 필요한 모든 도구가 마련되어 있습니다.
Javaemailservice Bean에서 Javamailsender를 사용하고 있습니다. Bean은 Spring Boot에 의해 자동으로 생성됩니다.
5. 스타터 테스트
우리는 일반적으로 Junit, Mockito 또는 Spring Test를 사용하여 응용 프로그램을 테스트합니다. 스프링 부트 테스트 스타터를 추가하여 응용 프로그램에 이러한 모든 라이브러리를 쉽게 포함시킬 수 있습니다.
<pectionency> <groupid> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-테스트 </artifactid> </fectionency>
Spring Boot는 응용 프로그램 테스트를 위해 올바른 버전을 자동으로 찾을 수 있습니다. 다음은 Junit 샘플 테스트입니다.
@runwith (springrunner.class) @springboottestpublic class emailtest {@autowired javaemailservice javaemailservice; @test public void sendemail () {javaemailservice.sendemail (); }}이 스타터 외에도 아래에는 일반적으로 사용되는 다른 스프링 부트 스타터가 있습니다.
스프링 부트 스타터-보안-보트-스타터-서비스-보트-시작-부트 스타터 스테이터-부트 스타터-validations-boot-starter-actuator
앞에서 언급했듯이 Spring Boot에서 제공하는 최신 스타터 목록은 Spring Boot 스타터를 참조하십시오.
요약
이 기사는 Spring Boot 스타터에 대한 소개를 제공합니다. 여기서 우리는 이러한 스타터가 필요한 이유와 응용 프로그램을 신속하게 안내하는 방법에 대해 논의합니다. 우리는 가장 일반적으로 사용되는 스프링 부트 스타터를 탐구했습니다.