The Debugging Chronicles : "코드의 미학"

[Spring] 이번주 내용 복습 본문

Spring

[Spring] 이번주 내용 복습

sweetseonah1004 2024. 10. 4. 10:56

 

1. 컨테이너란?
  개발자 대신 new(객체)를 생성 관리 해주는 것을 발한다.

2. 스프링 프레임워크를 한마디로 요약해보면?
  IoC 와 AOP를 지원하는 경량의 프레임워크다.


3. IoC 란?
  제어의 역행 : 제어권자인 개발자가 new 하지 않고 사용


4. 중간 프로젝트 컨테이너가 1개 == 톰캣(서블릿 컨테이너)
  서블릿 파일의 객체만 new 한다.


5. .xml(설정파일) 1:1
  실습때 factory(컨테이너) => applicationContext.xml
  서블릿 컨테이너(톰캣) => web.xml
  스프링 => pom.xml


6. new == <bean>


7. .xml 과도한 설정 -> @어노테이션 설정을 개발

  .xml 보단 @ 어노테이션을 사용하는 것이 좋다.

 

 

최종 복습
pom.xml Spring web 설정파일
: 라이브러리 세팅(설정)하는 파일이다.


applicationContext.xml 컨테이너 설정파일 -> 
컨테이너란?
개발자를 대신해서
객체를 생성(관리)해주는 것
new(호출)
=> 서블릿 컨테이너(톰캣) -> ForntController를 생성해줬다.
개발자를 대신해서
new FC();
fc.doGet();
fc.doPost();
GenericXmlApplicationContext 는 실무에서는 사용하지 안하지만 연습용으로 사용중

IOC 
constructor-arg 태그가 있다면 
생성자 주입
<bean class="test.GalaxyPhone" id="samsung" lazy-init="true" scope="prototype">
<constructor-arg ref="samsung1"></constructor-arg>
<constructor-arg type="int" value="1234"></constructor-arg>
</bean>

property 태그가 있다면
setter 주입 : 웹에서는 setter 주입을 많이 사용하는데 이는 사용자에게 더 나은 경험을 제공하기 위함이다.
-> bean(객체)이 생성(new)되다가 예외가 발생한는 것을 방지할 수 있다.
==> 기본 생성자를 활용한다.
<bean class="test.IPhone" id="apple">
<property name="watch" ref="apple1"/>
<property name="num" value="1234"/>
</bean>

DI 의존주입
 의존성 == 어떤 메서드를 수행할때 필요로한다.
멤버변수
ex) Controller에게 DAO 의존성이 있다.
ex) DAO에게 conn,pstmt 의존성이 있다.


특정 액션명 의 기능을 가지는 애가
이름이 다른 상태로 new(객체 생성)가 되고 있다.

.xml 설정파일로 <bean> 해서
객체를 new하고 있었는데,

설정파일의 내용이 너무 과다해지면서
개발자들에게 불편함이 생겼다..
이에따라 @어노테이션(애너테이션) 을 사용하게 되었다.
(@어노테이션의 근본은 .xml이다)