> Java > java지도 시간 > Spring- : SetBeanName ()-Beannameaware-BeanFactory

Spring- : SetBeanName ()-Beannameaware-BeanFactory

Patricia Arquette
풀어 주다: 2025-01-28 22:13:09
원래의
691명이 탐색했습니다.

spring-: setBeanName()-of-BeanNameAware-BeanFactory 이 세부 연습은 간단한 Java 스프링 응용 프로그램 내에서

인터페이스의

메소드를 보여줍니다. 실행 흐름을 단계별로 탐색합시다 1. 프로그램 실행이 시작됩니다 (main ()) BeanNameAware 프로그램은 setBeanName() 메소드로 시작됩니다. 스프링 컨텍스트는 에서로드 구성을 사용하여 초기화됩니다. 그런 다음

콩을 회수합니다

2. 스프링 컨텍스트 초기화 는 클래스를 처리합니다. 스프링 관리 콩 (@Service 등)에 대해 지정된 패키지 (필요에 따라 조정)를 스캔합니다.

3. Bean Creation (TenantConfig) main() 스프링은 AnnotationConfigApplicationContext 4. TENANTDATASOURCE 초기화 TenantConfig.class TenantService 구현

. Bean 초기화 중에 스프링은
<code class="language-java">public static void main(String[] args) {
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TenantConfig.class);
    TenantService tenantService = context.getBean(TenantService.class);
    tenantService.processTenantData();
}</code>
로그인 후 복사
를 호출합니다. 이 방법은 빈 이름에서 테넌트 이름 ( "tenanta"또는 "tenantb")을 추출하고 그에 따라 데이터베이스 URL을 설정합니다.

5. TENANTSERVICE Bean Creation 스프링을 찾습니다. 생성자는 를 사용하여 주입 할 를 지정합니다.

6. 임차인 서비스 검색 AnnotationConfigApplicationContext @Configuration in , TenantConfig는 컨텍스트 ()에서 검색됩니다. 종속성으로 완전히 초기화되었습니다 7. Calling ProcessTenantData () basePackages

<code class="language-java">@Configuration
@ComponentScan(basePackages = "org.example4")
public class TenantConfig {
    @Bean(name = "tenantA-dataSource")
    public TenantDataSource tenantADataSource() { return new TenantDataSource(); }

    @Bean(name = "tenantB-dataSource")
    public TenantDataSource tenantBDataSource() { return new TenantDataSource(); }
}</code>
로그인 후 복사
8. 데이터베이스 연결

는 호출되어 연결 세부 사항을 인쇄합니다 9. 프로그램 종료

테넌트 데이터를 처리 한 후 프로그램이 완료됩니다

완전한 콘솔 출력 : @Bean tenantADataSource() tenantBDataSource()에 대한 자세한 내용은 스프링 프레임 워크 문서를 참조하십시오. 이 예제는 TenantDataSource가 스프링 컨테이너 내에 할당 된 이름을 알고 있어서이 이름을 기반으로 동적 구성을 가능하게하는 방법을 보여줍니다.

.

위 내용은 Spring- : SetBeanName ()-Beannameaware-BeanFactory의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿