Spring Boot Starters 소개 및 장단 점

9157 단어 springbootstarters
간단 한 소개
모든 프로젝트(소형 프로젝트 든 기업 급 응용 프로그램 이 든)를 시작 하기 전에 그 중에서 관건 적 인 부분 중 하 나 는 관리 에 의존 하 는 것 이다.수 동 으로 소형 응용 프로그램 에 의존 관 리 를 하 는 것 은 어 려 운 일이 아니 지만 복잡 한 응용 프로그램 에 대해 수 동 관리 가 있 는 프로젝트 의존 이 이상 적 이지 않 고 많은 문제 가 발생 하고 시간 을 낭비 하기 쉽다.이런 시간 은 프로젝트 의 다른 중요 한 부분 에 사용 할 수 있다.
Spring Boot 뒤의 기본 원리 중 하 나 는 비슷 한 문 제 를 해결 하 는 것 이다.Spring Boot Starter 는 모든 단계 의 프로그램 에 쉽게 포 함 될 수 있 는 편리 한 의존 설명자 입 니 다.이러한 Starters 는 Spring 관련 기술 의 안내 과정 으로서 우 리 는 의존 관 계 를 걱정 할 필요 가 없다.그들 은 Spring Boot Starters 가 자동 으로 관리 할 것 이다.
Starters 는 프로젝트 를 빠르게 시작 하고 실행 할 수 있 도록 필요 한 의존 항목 을 많이 포함 하고 있 으 며,일치 하고 지원 되 는 관리 전달 의존 항목 을 가지 고 있 습 니 다.
1.왜 우 리 는 스타 터 스 가 필요 합 니까?
우리 가 Spring Boot 로 응용 프로그램 을 개발 하기 시 작 했 을 때,우리 가 생각 하 는 기본 적 인 문 제 는 왜 Spring Boot Starters 가 필요 합 니까?아니면 이 스타 터 스 들 이 제 앱 에서 어떻게 저 를 도 와 줬 나 요?
앞에서 말 한 바 와 같이 이 Starters 는 응용 프로그램 을 유도 하 는 데 사 용 됩 니 다.우 리 는 응용 프로그램 에 정확 한 Starters 를 포함 하 는 것 이 필요 합 니 다.Spring Boot 는 선택 한 Starters 에 필요 한 모든 의존 항목 이 classpath 에 있 는 지 확인 합 니 다.
더 잘 이해 하기 위해 서 는 예 를 들 어 간단 한 Spring Web MVC 프로그램 을 구축 하고 싶 습 니 다.웹 프로그램 코드 를 작성 하기 전에 다음 과 같은 몇 가 지 를 고려 해 야 합 니 다.
  • 정확 한 Spring MVC 의존
  • 웹 기술 에 필요 한 의존(예 를 들 어 Thymeleaf 를 사용 하고 싶 습 니 다)
  • 우 리 는 이 모든 의존 이 호 환 되 는 것 을 확보 해 야 한다.
  • Spring Boot Starters 를 사용 하여 우리 의 Spring MVC 웹 프로그램 을 유도 하 는 것 은 매우 간단 합 니 다.우 리 는 pom.xml 에 spring-boot-starter-web 라 는 starter 를 포함 해 야 합 니 다.
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    이상 pom.xml 의 항목 은 모든 의존 항목 이 classpath 에 있어 야 하 는 지 확인 하기 때문에 웹 프로그램 개발 을 시작 할 준비 가 되 어 있 습 니 다.
    현재 스프링 부 트 가 제공 하 는 스타 터 스 는 약 50 여 개 로,이 는 제3자 스타 터 스 도 포함 되 지 않 는 다.Starters 의 업데이트 목록 은Spring Boot Starter참조 하 시기 바 랍 니 다.
    다음은 자주 사용 하 는 스타 터 스 를 소개 하 겠 습 니 다.
    2. Web Starter
    이것 은 가장 자주 사용 되 는 Spring Boot Starter 중 하나 입 니 다.이 Starter 는 Spring Web 프로그램(REST 포함)을 만 드 는 데 필요 한 모든 의존 도 를 calsspath 에 포함 시 키 고 tomcat-starter 를 기본 서버 로 추가 하여 웹 프로그램 을 실행 할 것 입 니 다.응용 프로그램 에 웹 스타 터 를 포함 하려 면 pom.xml 에 다음 항목 을 추가 하 십시오.
    
    <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    이제 저희 Spring MVC Controller 를 만 들 수 있 습 니 다.
    
     @RestController
     public class SampleController{
    
      @RequestMapping("/greeting")
      Stringhello(){
        return "HelloWorld!";
      }
    }
    프로그램 을 실행 하고 접근http://localhost:8080/greeting하면'Hello Word'를 응답 으로 받 을 수 있 을 것 입 니 다.우 리 는 최소한 의 코드 를 사용 하여 REST 컨트롤 러 를 만 들 었 다.
    3. Data JPA Starter
    대부분의 응용 프로그램 은 지속 적 인 메커니즘 이 필요 합 니 다.JPA 는 지속 적 인 기준 입 니 다.Spring Boot Starters 는 JPA Starters 를 가지 고 있 습 니 다.이러한 JPA 의존 도 를 수 동 으로 설정 하지 않 고 응용 프로그램 에 JPA Starter 를 추가 하여 쉽게 실현 할 수 있 습 니 다.
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
    </dependency>
    Spring JPA Starter 는 H2,Derby,Hsqldb 에 대한 자동 지원 을 제공 합 니 다.JPA starter 를 사용 하여 JPA 샘플 프로그램 을 만 드 는 것 이 얼마나 쉬 운 지 봅 시다.
    
    @Entity
    public class User{
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private Long id;
      private String firstName;
      private String lastName;
      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 + '\'' +
            '}';
      }
    }
    다음은 우리 의 UserRepository 입 니 다.
    
    public interface UserRepositoryextends CrudRepository<User,Long>{
      List<User>findUserByLastName(String lastName);
    }
    다음은 저희 코드 를 테스트 할 수 있 습 니 다.다음은 JUnit 코드 입 니 다.
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class JpademoApplicationTests{
      @Autowired
      UserRepository userRepository;
      @Test
      public void contextLoads(){
        User user = userRepository.save(new User("Demo","User"));
        User searchUser= userRepository.findOne(user.getId());
        assertNotNull(searchUser);
        assertEquals(user.getFirstName(),searchUser.getFirstName());
      }
    }
    위 코드 에서 보 듯 이 데이터베이스 설정 이나 추가 데이터베이스 설정 을 지정 할 필요 가 없습니다.JPA starter 를 추가 하면 설정 이나 인 코딩 없 이 상 자 를 열 수 있 는 많은 기능 을 얻 을 수 있 습 니 다.
    필요 하 다 면 이 설정 들 을 수정 하거나 사용자 정의 할 수 있 습 니 다.
    4. Mail Starter
    응용 프로그램 에서 이메일 을 보 내 는 것 은 매우 흔 한 작업 입 니 다.현재 모든 응용 프로그램 은 시스템 에서 이메일 을 보 내야 합 니 다.Spring Boot Mail starter 는 모든 복잡성 을 숨 기 는 간단 한 방법 으로 이 기능 을 처리 합 니 다.
    응용 프로그램 에 Mail starter 를 추가 해서 전자 우편 지원 을 사용 할 수 있 습 니 다.
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    저 는 Mailgun 을 SMTP 서버 로 사용 하고 있 습 니 다.다음은 제 applicationproperties 파일 에 추 가 된 SMTP 상세 정보 입 니 다.
    
    spring.mail.host=smtp.mailgun.org
    [email protected]
    spring.mail.password=mypassword
    spring.mail.properties.mail.transport.protocol=smtp
    spring.mail.properties.mail.smtp.port=587
    spring.mail.properties.mail.smtp.auth=true
    우리 의 Email Service 류 는 메 일 을 보 내 는 것 을 책임 집 니 다.
    
    @Component
    public class JavaEmailService{
      private JavaMailSender mailSender;
      public JavaEmailService(JavaMailSender mailSender){
        this.mailSender = mailSender;
      }
      public void sendEmail(){
        MimeMessagePreparator messagePreparator = mimeMessage -> {
          MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
          helper.setFrom("[email protected]");
          helper.setTo("[email protected]");
          helper.setSubject("Sample mail subject");
          helper.setText("Test Email");
        };
        mailSender.send(messagePreparator);
      }
    }
    우 리 는 Spring 이 제공 하 는 자바 MailSender 를 사용 하여 이메일 을 보 냅 니 다.JUnit 테스트 코드 는 다음 과 같 습 니 다.
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class EmailTest{
      @Autowired
      JavaEmailService javaEmailService;
      @Test
      public void sendEmail(){
        javaEmailService.sendEmail();
      }
    }
    마찬가지 로 간단 한 코드 와 설정 만 있 으 면 간단 한 이메일 을 보 낼 수 있 습 니 다.Spring Boot Mail Starter 는 모든 필요 한 도구 가 도 착 했 는 지 확인 하여 실제 문 제 를 신속하게 해결 할 수 있 습 니 다.
    자바 EmailService bean 에서 자바 MailSender 를 사용 합 니 다.-이 bean 은 Spring Boot 에서 자동 으로 생 성 됩 니 다.
    5. Test Starter
    우 리 는 보통 Junit,Mockito 또는 Spring Test 를 사용 하여 우리 의 응용 프로그램 을 테스트 합 니 다.우 리 는 Spring Boot Test starter 를 추가 하여 모든 라 이브 러 리 를 우리 프로그램 에 쉽게 포함 시 킬 수 있 습 니 다.
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    Spring Boot 는 응용 프로그램 테스트 에 사용 할 정확 한 버 전 을 자동 으로 찾 을 수 있 습 니 다.이것 은 JUnit 예제 테스트 입 니 다.
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class EmailTest{
      @Autowired
      JavaEmailService javaEmailService;
      @Test
      public void sendEmail(){
        javaEmailService.sendEmail();
      }
    }
    이 starter 외 에 도 자주 사용 하 는 Spring Boot Starter 가 있 습 니 다.
    
    spring-boot-starter-security
    spring-boot-starter-web-services
    spring-boot-starter-integration
    spring-boot-starter-validation
    spring-boot-starter-actuator
    앞에서 말 한 바 와 같이 Spring Boot 가 제공 하 는 Starter 의 최신 목록 을 참조 하 십시오.
    총결산
    본 고 는 Spring Boot Starters 소 개 를 제공 합 니 다.우 리 는 왜 이런 Starter 가 필요 한 지,그리고 그들 이 우리 의 응용 프로그램 을 신속하게 유도 하 는 데 어떻게 도움 을 주 는 지 에 대해 토론 합 니 다.우 리 는 가장 자주 사용 하 는 Spring Boot Starter 를 탐색 했다.

    좋은 웹페이지 즐겨찾기