Spring 의 Xml 와 자바 Config 확장 중 어느 것 이 좋 습 니까?

머리말
지난 글 에서 우 리 는 XML 형식 을 통 해 Spring 의 확장 을 어떻게 정의 하 는 지 에 대해 어떻게 소 개 했 습 니까?《봄 면접 고주파 문 제 는 어 떻 습 니까?사용자 정의 XML schema 확장》, 많은 사람들 이 지금 이 어느 시대 인지,xml 를 다시 사용 하 는 사람 이 있 습 니까?이 물건 은 이미 유행 이 지 났 지,그것 을 파악 할 필요 가 있 겠 니?Spring 홈 페이지 에 서 는 이런 방식 을 맨 뒤에 두 었 는데 그 중요성 이 어떻게 되 었 는 지 짐작 할 수 있 습 니 다.모두 가 토로 한 이상,우 리 는 오늘 계속 주 해 를 바탕 으로 하 는 Spring 확장 을 소개 합 니 다.
JavaConfig 설정 확장
Spring 3.0 부터 Spring 은 자바 Config 방식 을 제공 하여 이전 XML 방식 을 대체 할 수 있 습 니 다.원래 XML 설정 에 있 던 것 은 주 해 를 통 해 일일이 교체 할 수 있 었 습 니 다.주로@Configuration,@Bean,@Import,@DependsOn 이라는 몇 가지 주 해 를 통 해 이 루어 집 니 다.이런 방식 도 스프링 부츠 가 사용 하 는 것 이다.
@Configuration
@Configuration 은 클래스 에 만 표시 할 수 있 습 니 다.이 클래스 는 JavaConfig 클래스 로 Spring IOC 용기 에 스 캔 되 어 인식 되 고 Bean 을 만들어 용기 에 넣 을 수 있 습 니 다.@Configuration 클래스 는 기 존의 xml 파일 에 해당 합 니 다.다음은 홈 페이지 에서 제공 하 는 예 를 살 펴 보 겠 습 니 다.

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
이 정 의 된 자바 Config 는 다음 XML 설정 과 같 습 니 다.

<beans>
    <bean id="myService" class="cn.javajr.services.MyServiceImpl"/>
</beans>
@Bean
@Bean 은 방법 에 만 표 시 될 수 있 습 니 다.이 방법 은 Spring Bean 을 되 돌려 줍 니 다.IOC 용기 에 맡 길 수 있 습 니 다.예전 에 xml 파일 에 적 힌 요소 에 해당 합 니 다.
  • name:하나 이상 의 bean 이름 을 지정 합 니 다.name 이 설정 되 어 있 지 않 을 때 Spring 용 기 는 기본적으로@Bean 방법 명 을 bean name 으로 합 니 다.name 이 설정 되 어 있 으 면 방법 명 을 사용 하지 않 고 여러 name 을 설정 할 때 첫 번 째 name 을 제외 하고 다른 것 은 bean 의 별명 으로 합 니 다.xml 설정 의 name 속성 에 해당 합 니 다.
  • initMethod:용기 가 bean 을 초기 화 한 후에 호출 하 는 방법 을 지정 합 니 다.xml 설정 의 init-method 속성 에 해당 합 니 다.
  • destroy Method:용기 가 bean 을 소각 하기 전에 호출 하 는 방법 을 지정 합 니 다.xml 설정 의 destroy-method 에 해당 합 니 다.
  • autowire:bean 이 자동 조립 할 때 주입 에 의존 하 는 전략 을 지정 합 니 다.수 치 는 Enum 류 Autowire 의 세 가지 상수:Autowire.BY 를 참고 할 수 있 습 니 다.NAME,Autowire.BY_TYPE,Autowire.NO。
  • @Import
    XML 설정 의 탭 은 자바 Config 를 기반 으로@Import 를 제공 하여 모듈 화 된 설정 클래스 를 조합 합 니 다.사용 방식 은 다음 과 같 습 니 다.
    
    @Configuration()  
    @Import({ApplicationContextConfig.class})  
    public class ApplicationContextConfig {
    위 에 서 는 자바 Config 주 해 를 통 해 XML 형식의 주 해 를 교체 하 는 몇 가지 주 해 를 간단하게 소개 하 였 으 며,사용 하기에 매우 간단 합 니 다.만약 당신 이 이전의 XML 프로필 에 대해 비교적 잘 알 고 있다 면 자바 Config 를 사용 하 는 것 이 더욱 간단 하고 편리 합 니 다.
    Dubbo 의 자바 Config
    위의 글 에서 우 리 는 dubbo 가 XML 을 통 해 확장 을 사용자 정의 하 는 것 을 소 개 했 습 니 다.오늘 우 리 는 dubbo 가 어떻게 자바 Config 를 통 해 XML 형식의 확장 을 대체 하 는 지 살 펴 보 겠 습 니 다.
    우 리 는 dubbo 의 서비스 제공 자가 어떻게 주 해 를 통 해 실현 되 는 지 보 았 다.
    
    @Configuration
    @EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.annotation.impl")
    @PropertySource("classpath:/spring/dubbo-provider.properties")
    static class ProviderConfiguration {
    }
    @Configuration 이라는 주 해 는 위 에서 이미 소 개 했 습 니 다.@EnableDubbo 라 는 주 해 를 중점적으로 보 겠 습 니 다.
    @EnableDubbo 는 사실@EnableDubboConfig@DubboComponentscan 은 이 두 그룹의 주 해 를 통 해 이 루어 진 것 입 니 다.
    @EnableDubboConfig 주 해 는 다음 과 같 습 니 다.
    
    @Target({ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    @Documented
    @Import(DubboConfigConfigurationRegistrar.class)
    public @interface EnableDubboConfig {
    이 주 해 는@Import(DubboConfiguration Registrar.class)를 사용 하여 Spring 이 처리 하고 있 습 니 다.
    @EnableDubboConfig 주석 을 달 때 DubboConfig Configuration Registrar 를 실례 화 합 니 다.
    또한 registerBeanDefinitions 방법 을 호출 합 니 다.이 방법 은 주로 propties 파일 을 분석 하고 서로 다른 설정 에 따라
    해당 유형의 Bean 대상 을 생 성 합 니 다.
    총결산
  • 은 XML 기반 과 자바 기반 설정 확장 을 통 해 사용자 가 Spring 을 통 해 우리 가 개발 한 구성 요 소 를 사용 하여 사용 하기 쉬 운 기능 을 제공 할 수 있 습 니 다.
  • 현재 대부분 자바 Config 라 는 방식 을 사용 하고 있 지만 xml 라 는 방식 을 좋아 하 는 사람 이 있 습 니 다.
  • xml 는 설정 을 집중 화 할 수 있 습 니 다.모든 구성 요 소 는 분산 되 어 있 지 않 기 때문에 beans 에 대해 좋 은 개관 을 할 수 있 습 니 다.예 를 들 어 my bais 프로필,SpingMvc 프로필 등 이 함께 놓 여 있 습 니 다.파일 을 분할 해 야 한다 면 Spring 은 이 루어 질 수 있 습 니 다.그리고(Spring)내부 탭 을 통 해 재 구성 하거나 외부 컨 텍스트 파일 을 집합 합 니 다.
  • xml 와 자바 Config 도 당연히 혼합 하여 사용 할 수 있 습 니 다.어떤 방식 을 사용 하 는 지 는 개인의 프로 그래 밍 습관 을 보 는 것 입 니 다.어떤 방식 이 절대적 으로 좋 은 지 는 각각 천추 가 있 습 니 다.
  • 서로 다른 방식 의 Spring 확장 에 관 한 두 편 을 보고 우 리 는 스스로 하 나 를 실현 할 수 있 습 니까?
  • 이상 은 Spring 의 Xml 와 JavaConfig 확장 중 어느 것 이 좋 은 지 상세 한 내용 입 니 다.Spring 의 Xml 와 JavaConfig 확장 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

    좋은 웹페이지 즐겨찾기