-
[Spring] DI Annotationback end 2022. 3. 15. 23:55
DI (dependency injection) 프로젝트 공통 준비
1. Java Project로 생성한 후 maven project로 변환한다.
2. pom.xml 에서 dependency를 추가한다. (dependency는 Maven에서 코드를 가져온다.)
3. package 및 class 생성한다. (+beans.xml, Test.class 추가한다.)
DI beans.xml에서 객체 생성
ex) SprindDI02/com.test01
<bean id="myTest" class="com.test01.Nic_Name"/>
DI Annotation으로 객체 생성
ex) SprindDI02/com.test01.anno
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> </beans>
Spring Core API 1.9 Annotation Config 참고해서 붙인다.
<context:component-scan base-package="com.test01.anno"/>
com.test01.anno 패키지에 있는 @Component 를 찾아서 객체 생성한다.
<bean>의 id 속성은 @Component() 의 괄호안에 넣어준다!
DI AppConfig class로 객체 생성
ex) SprindDI02/com.test03
AppConfig 클래스 위에 @Configuration으로 beans.xml 처럼 동작하도록 한다.
properties 파일에 value를 집어넣고 AppConfig에서 리소스로 호출한다.
@Configuration @PropertySource("classpath:/com/test03/a.properties")
+ 객체를 만들고자 하는 메서드 위에 Annotation을 입력한다.
@Bean(name="school")
리소스에 저장한 value를 저장할 변수가 있는 클래스에 Annotation을 입력한다.
이때 경로는 AppConfig로 해준다. properties를 AppConfig에서 읽고 있기 때문에.
@ImportResource("classpath:/com/test03/AppConfig")
그리고 매칭되는 변수 위에 Annotation을 해준다.
@Value("${myname}") private String name;
'back end' 카테고리의 다른 글
[Spring] MVC (0) 2022.03.16 [Spring] AOP (0) 2022.03.16 [JSP] EL/JSTL (0) 2022.03.09 [MVC] WebScore 프로젝트 (0) 2022.03.09 [MVC 패턴] DB연동 (0) 2022.03.08