source

봄에 XML 구성에 비해 JavaConfig의 이점은 무엇입니까?

lovecheck 2023. 9. 14. 23:19
반응형

봄에 XML 구성에 비해 JavaConfig의 이점은 무엇입니까?

이전의 구성들은 코드에서 하드 코드화되곤 했지만, 나중에 .property 파일로 외부화(하드 코드화된 값을 피하기 위해, 구성을 변경하기 위해 코드를 변경하는 것을 피하기 위해 등)된 다음 XML로 이동했습니다(더 표준화되고 오류가 발생하지 않기 위해 등)

이제 Spring 3의 @Configuration에 대해 읽어보면 다시 초기 접근 방식으로 돌아가는 것 같습니다.

외부화하지 않고 코드에서 구성을 하드코딩하려는 이유는 무엇입니까?

몇가지 장점이 있습니다.

  1. 자바는 안전한 타입입니다.올바른 클래스 한정자를 구성하는 경우 컴파일러가 문제를 보고합니다.
  2. 구성에 기반한 XML은 빠르게 확장할 수 있습니다.[네, 분할해서 수입할 수는 있지만 그래도]
  3. 검색은 훨씬 간단합니다. 리팩토링이 더 행복할 것입니다.콩의 정의를 찾는 것은 훨씬 쉬워질 것입니다.

여전히 XML 구성을 좋아하고 계속하는 사람들이 있습니다.

참고문헌: Java 구성상의 장점가지 이유

여기 정답이 나왔습니다. 그 정답 외에 한 점 더 드립니다.

스프링 5 기준에 따르면

XML 기반 메타데이터는 구성 메타데이터의 유일한 형식이 아닙니다.Spring IoC 컨테이너 자체는 이 구성 메타데이터가 실제로 작성되는 형식과 완전히 분리되어 있습니다.요즘 많은 개발자들이 봄 애플리케이션을 위해 자바 기반 구성을 선택하고 있습니다.

그것은 요즘 사람들이 자바 기반의 구성을 향해 나아가고 있다는 것을 의미합니다.

예: xml의 스프링 웹-mvc 구성

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    <context:component-scan base-package="controller" />
    <context:component-scan base-package="dao" />
    <context:component-scan base-package="service" />

    <mvc:annotation-driven />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/pages/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
</beans>  

자바 기반 스타일의 동일한 구성

@Configuration
@EnableWebMvc

@ComponentScans({
        @ComponentScan("controller"),
        @ComponentScan("dao"),
        @ComponentScan("service")      
})
public class WebMVCConfig implements WebMvcConfigurer {

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/pages/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
}

무엇이 이해하기 쉽습니까?분명 자바 기반의 구성은 이해하기 쉽습니다.

코드를 쓰는 사람들이나 다른 사람들은 XML보다 자바 코드를 쉽게 이해할 수 있습니다. 그리고 자바만 알면 XML에 대해 알 필요가 없습니다.

언급URL : https://stackoverflow.com/questions/29162278/benefits-of-javaconfig-over-xml-configurations-in-spring

반응형