밤과라임
2k
2019-03-19 09:35:30 작성 2019-03-19 09:35:53 수정됨
4
311

spring DI 질문입니다.


main 메소드는 

메인이되는 클래스에

private static AService aService;

private static BProperties prop;


 public static void main(String[] args) throws IOException 

    {
    GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
 
ctx.load("server-config.xml"); 
    ctx.refresh(); 
   
    aService = (AService)ctx.getBean("aService");
prop = (bProperties)ctx.getBean("prop");
        new TcpServer();
 }
이렇게 되어있는 소스를 파악이 잘 안됩니다.

1.server-config.xml에는 aService 의 bean id는 물론 aService 단어 자체가 없습니다. 
그럼      aService = (AService)ctx.getBean("aService"); 는 어떤 일을 하는건가요?
그렇다고해서 getbean("") 부분을 바꾸면 에러가 납니다.
-다른경로에 AService 클래스는 존재합니다.

2.이후         new TcpServer(); TcpServer()메소드를 호출하며 끝내는데
상위에서 스태틱으로 aService 와 prop  객체를 생성하고 주입하였으니
여기서 따라간 값이 들어와 실행하는걸로 이해하면 될까요??
prop 부분은 server-config.xml 부분에 존재하고 따라가면 값 지정해둔게 있어 이해가 되는데
aService는 어떻게 쓰였는지 교재나 인터넷을 검색해봐도 불러오는 곳의 bean id가 설정되어있어
이해가 안갑니다.


0
0
  • 답변 4

  • LichKing
    14k
    2019-03-19 09:40:41

    1. xml 에 명시적으로 정의되어있지않아도 componentScan 등으로 자동으로 빈을 만들도록했을수도있습니다. getBean()은 빈을 만드는거랑은 상관없이 컨테이너에서 빈을 꺼내오는 일을 합니다.


    2. 질문이 이해안가네요.

    0
  • redeye0922
    903
    2019-03-19 09:44:35

    어노테이션을 좀더 공부하셔야할것 같습니다.

    어노테이션이란게 왜 생겼고 어떤용도로 사용하고있는지 파악해보세요

    0
  • vernum
    960
    2019-03-19 09:46:58
    0
  • 밤과라임
    2k
    2019-03-19 10:19:58

    @LichKing , redeye0922vernum 


    감사합니다. 이번주에는 이부분을 공부해봐야겠네요. 겉도는게 많은데 도움을 통해 조금씩 방향을 잡아가네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.