종속성 주입(IoC)


클래스 멤버 속성에 @Inject@By 주석을 선언하여 종속성 주입 설정을 완료하고 Bean 컨테이너에서 관리하는 클래스 객체만 종속성 주입을 지원합니다.

# 🎜🎜#
  • 예:

    // 业务接口
    public interface IDemo {
        String sayHi();
    }
    
    // 业务接口实现类1
    @Bean
    public class DemoOne implements IDemo {
        public String sayHi() {
            return "Hello, YMP! I'm DemoOne.";
        }
    }
    
    // 业务接口实现类2
    @Bean
    public class DemoTwo implements IDemo {
        public String sayHi() {
            return "Hello, YMP! I'm DemoTwo.";
        }
    }
  • 테스트 코드: # 🎜🎜#

    @Bean
    public class TestDemo {
    
        @Inject
        private IDemo __demo1;
    
        @Inject
        @By(DemoOne.class)
        private IDemo __demo2;
    
        public void sayHi() {
            // _demo1注入的将是最后被注册到容器的IDemo接口实现类
            System.out.println(__demo1.sayHi());
            // _demo2注入的是由@By注解指定的DemoOne类
            System.out.println(__demo2.sayHi());
        }
    
        public static void main(String[] args) throws Exception {
            YMP.get().init();
            try {
                TestDemo _demo = YMP.get().getBean(TestDemo.class);
                _demo.sayHi();
            } finally {
                YMP.get().destroy();
            }
        }
    }