>  Q&A  >  본문

java中成员变量productDao并没有初始化,为什么可以调用方法?

伊谢尔伦伊谢尔伦2742일 전637

모든 응답(6)나는 대답할 것이다

  • 阿神

    阿神2017-04-18 10:58:06

    Autowired은 변수를 수정하고 해당 SpringBean 컨테이너에서 가져와 변수의 값으로 설정됩니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 10:58:06

    Spring 프레임워크를 사용하고 Spring에서 관리할 @Controller로 ProductController에 주석을 답니다. ProductController가 인스턴스화되면 @Autowired를 검색하고 Spring에서 관리하는 다른 인스턴스를 삽입합니다.

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 10:58:06

    @Autowired 주석은 productDao에서 사용되는데, 이는 인스턴스가 Spring 컨텍스트에서 자동으로 주입된다는 의미입니다.

    Spring 컨텍스트의 클래스는 모두 싱글톤입니다. 시작 후 이러한 클래스는 컨텍스트에서 초기화되므로 ProductController에서 직접 호출할 수 있습니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:58:06

    이것은 자동으로 주입되므로 ProductDaoFacade를 Bean으로 선언해야 합니다.

    ps:ProductDaoFacade이 코드 작성은 정말 이상합니다. 인터페이스이기도 하지만 외관이기도 합니다(디자인 패턴입니다). 동시에 상수가 너무 많아서 전형적인 constant interface입니다. 간단히 말해서 열거형 클래스를 사용하는 것이 좋습니다. 더 자세히 알고 싶으시다면 Effective Java의 제안 중 하나를 참고하시는 걸 추천합니다————接口只用于定义类型.

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:58:06

    spring은 패키지 스캔 중 @Controller 주석을 발견하고 컨트롤러 클래스를 관리 및 유지 관리한 후 @Autowired를 발견한 후 어셈블리 메커니즘을 시작하고 변경된 속성 유형에 따라 Spring에서 관리하는 Bean의 컨텍스트에서 검색하고 주입했습니다. .전문용어로는 IOC

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:58:06

    Spring이라는 프레임워크가 여러분을 위해 만들어졌습니다<_<

    회신하다
    0
  • 취소회신하다