programing

스프링부트-스타터-부모는 폼 파일에서 정확히 무엇을 합니까?

instargram 2023. 10. 9. 21:20
반응형

스프링부트-스타터-부모는 폼 파일에서 정확히 무엇을 합니까?

저는 스프링부트가 아닌 스프링 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 : 공식 문서도 참고하시기 바랍니다.

https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.first-application.dependencies

다음을 위한 공통 구성 공간을 제공합니다.CHILD POMs. 예를 들면

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 POMs

<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

반응형