스프링부트-스타터-부모는 폼 파일에서 정확히 무엇을 합니까?
저는 스프링부트가 아닌 스프링 mvc 프로젝트를 개발하고 있습니다.예를 들어 제 프로젝트에는 이런 수업이 없습니다.
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
스프링 mvc의 구성 파일에 대해 다음과 같은 세 가지 클래스가 있습니다.
@Import(WebSocketConfig.class)
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "......")
public class MainConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/Content/**")
.addResourceLocations("/Content/");
registry.addResourceHandler("/Scripts/**")
.addResourceLocations("/Scripts/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver
= new InternalResourceViewResolver();
viewResolver.setPrefix("/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
두번째:
public class MainInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
public static HashMap<String, String> response_code = new HashMap<String, String>();
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { MainConfiguration.class,
WebSocketConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
Security.addProvider(new BouncyCastleProvider());
servletContext.addListener(new MainContextListener());
System.out.println("MainInitializer.onStartup()");
}}
셋째,
public class MainContextListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("Context Initialized");
Security.addProvider(new BouncyCastleProvider());
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("Shutting down!");
}
}
컨트롤러와 jsp 파일이 있고 tomcat 웹 서버에서 실행되도록 구성했는데 이상한 점이 있습니다. 이 코드 조각을 내 폼에 추가하면 index.jsp가 브라우저에 정확하게 나타나지만 제거하면 404개의 not found url이 내 컨트롤러에 표시됩니다.내 프로젝트가 스프링부팅 프로젝트가 아닌 이유는 무엇입니까?저는 아래 코드가 스프링 부트와 관련이 있고 제 프로젝트가 스프링 부트가 아니라 스프링 mvc이기 때문에 스프링 부트가 필요 없다고 생각했습니다. 하지만 폼에 이 코드가 추가되지 않으면 문제가 발생합니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
스프링 부트는 클래스 경로에 항아리를 추가할 수 있는 여러 가지 "시작"을 제공합니다.예를 들어 spring-boot-starter-security, spring-boot-starter-web 등의 경우"spring-boot-starter-parent"는 유용한 메이븐 기본값(예: 필요한 모든 항아리 및 기타 항목을 자동으로 추가)을 제공하는 특별한 스타터입니다.또한 pom.xml에서 사용 중인 종속성에 대한 버전 태그를 생략할 수 있도록 종속성 관리 섹션도 제공합니다.예를 들어, 스프링부팅으로 웹 애플리케이션을 만들고 싶다고 가정하면 다음 사항을 추가해야 합니다.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
여기서 태그가 생략되었음을 알아둡니다.따라서 궁극적으로 "스프링-부팅-스타터-부모"는 기본적으로 너무 많은 것을 추가하므로 이러한 것에 대해 걱정할 필요가 없습니다.
EDIT : 공식 문서도 참고하시기 바랍니다.
다음을 위한 공통 구성 공간을 제공합니다.CHILD POM
s. 예를 들면
Dependencies
&Properties
위해서e.g.
다음은 상위 POM 구성입니다.1.4.2.RELEASE
spring-boot-dependencies
어느 쪽이spring-boot-starter-parent
<properties>
<activemq.version>5.13.4</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine.version>1.9.44</appengine.version>
<artemis.version>1.3.0</artemis.version>
<aspectj.version>1.8.9</aspectj.version>
<assertj.version>2.5.0</assertj.version>
<atomikos.version>3.9.3</atomikos.version>
<bitronix.version>2.1.4</bitronix.version>
<caffeine.version>2.3.4</caffeine.version>
의 공유물.child POM
s
<dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>1.4.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<type>test-jar</type>
<version>1.4.2.RELEASE</version>
</dependency>
<dependency>
아이들에게 공통적으로 의존하는 것
당신의 폼 통합성에 대한 더 많은 정보를 제공할 수 있다면 우리는 더 자세히 당신을 이해하고 도울 수 있습니다.
반면, 상위 폼 스프링-부트-스타터-부모는 전체 종속성(mvc, 캐시, jpa) 및 공통 속성을 포함하여 종속성 버전을 양호한 일관성으로 유지하여 프로젝트 또는 하위 모듈에서 사용할 수 있습니다.
기본적으로 필요에 따라 pom.xml에 시작자를 추가할 수 있습니다(web, jpa, batch...). 예를 들어 다른 종속성을 추가하지 않고 시작자 mvc를 pom.xml에 추가할 수 있으므로 pom.xml은 다음과 같을 수 있습니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
의 주요 spring-boot-starter-parent
저는 그것이 호환되는 버전의 의존성을 제공한다는 것입니다.
한 폼이 일이 할 수 , 하고, 를 spring-boot-starter-parent
.
언급URL : https://stackoverflow.com/questions/43305016/what-does-spring-boot-starter-parent-exactly-do-in-pom-file
'programing' 카테고리의 다른 글
How to get date range using moment.js (0) | 2023.10.09 |
---|---|
sequelize.js - 수동으로 mysql 패키지를 설치해야 합니다. (0) | 2023.10.09 |
사용자 수준 스레드는 어떻게 예약/생성되며 커널 수준 스레드는 어떻게 생성됩니까? (0) | 2023.10.09 |
jquery에서 특정 속성 값을 가진 모든 요소 찾기 (0) | 2023.10.09 |
jQuery는 모든 텍스트 필드의 값의 합을 계산합니다. (0) | 2023.10.09 |