Spring Boot Starters 소개 및 장단 점
모든 프로젝트(소형 프로젝트 든 기업 급 응용 프로그램 이 든)를 시작 하기 전에 그 중에서 관건 적 인 부분 중 하 나 는 관리 에 의존 하 는 것 이다.수 동 으로 소형 응용 프로그램 에 의존 관 리 를 하 는 것 은 어 려 운 일이 아니 지만 복잡 한 응용 프로그램 에 대해 수 동 관리 가 있 는 프로젝트 의존 이 이상 적 이지 않 고 많은 문제 가 발생 하고 시간 을 낭비 하기 쉽다.이런 시간 은 프로젝트 의 다른 중요 한 부분 에 사용 할 수 있다.
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 프로그램 을 구축 하고 싶 습 니 다.웹 프로그램 코드 를 작성 하기 전에 다음 과 같은 몇 가 지 를 고려 해 야 합 니 다.
<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 를 탐색 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.