스프링 상식
마틴 파울러: “제어가 역전되었다(ioc -> Inversion Of Control)”, 스프링을 ioc 컨테이너라고 함.
로드 존슨: 스프링의 모체를 고안(클래스에 다른 클래스들을 모아 관리한다).
DI: 값을 주입한다 = 의존성을 주입한다. 세터(Setter)를 통해 값을 주입하는 것을 DI 라고 한다. Dependency injection(디펜던시 인젝션, 의존성 주입)
0. 설정파일
설정파일은 xml 또는 어노테이션을 쓴다.
1. DI
(가)값을 주입하거나, (나)메소드를 호출하는걸 DI라고 한다.
(1) 세터 DI (값 주입. 셋 메소드를 통해 값을 채워준다)
<bean id=”hello” class=”com.sist3.Hello”>
<property name=”name” value=”박문수”></property>
</bean>
(2) 메소드 DI (호출. 값 주입이 아니다)
(2-1)시작(메모리 할당후)
init-method=”메소드명”
ex) <bean id=”hello” class=”com.sist3.Hello” init-method=”init”>
드라이버 등록할 때 쓴다.
(2-2)종료(메모리 해제후)
destroy-method=”메소드명”
ex) <bean id=”hello” class=”com.sist3.Hello” destroy-method=”메소드명”>
disConnection에 많이 쓴다.
(3) 생성자 DI (값 주입)
<bean id=”hello” class=”com.sist3.Hello” init-method=”init”>
<constructor-arg>
<value>심청이</value>
</constructor-arg>
</bean>
*** bean을 쓸 때 디폴트값은 singleton 이다. (싱글톤 패턴)
<bean id=”hello” class=”com.sist3.Hello” scope=”singleton”>
위와 같이 bean에 메모리를 할당할 때, 주소값을 하나만을 사용한다. 이를 싱글톤 패턴이라고 한다. scope를 쓰지 않으면 디폴트가 싱글폰 패턴이다.
이를 변경하고 싶다면 scope=”prototype” 를 주면 된다. 프로토타입은 클론 명령어와 유사한 것으로, 주소값이 바뀌게 된다.

————————————————————————————————————-
2. AOP
중복적으로
2-1. 보안
2-2. 트랜젝션
2-3.
3. ORM(릴레이션 매퍼 / 관계형 데이터베이스를 연결하는 매퍼 / 마이바티스, 아이바티스, 하이버네이트)
***** OXM(xml 매퍼 / 마샬, 언마샬)
***** tx(트랜잭션)
***** expression: taglib
beans는 빈즈
p는 프로퍼티
—————–
일반 클래스는 @Component라고 붙인다.
DAO는 @Repository 라고 붙인다.
모델 클래스는 @Controller 라고 붙인다.
—————————-
@Autowired
private Sawon s;
바로 아래의 객체를 자동으로 주입. 2개 이상일 경우 충돌이 난다.
@Resource(name=”sawon”)
private Sawon s;
복수일 경우 위와 같이 리소스를 써야 한다.