Spring 의 Xml 와 자바 Config 확장 중 어느 것 이 좋 습 니까?
4470 단어 Springxml넓히다JavaConfig
지난 글 에서 우 리 는 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 파일 에 적 힌 요소 에 해당 합 니 다.
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 대상 을 생 성 합 니 다.
총결산
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.