GenericXmlApplicationContext
객체를 new
로 생성할 때 컨테이너가 생성된다.
getBean()
를 이용하여 Bean 객체를 이용close()
를 이용하여 컨테이너와 빈 소멸afterPropertiesSet()
InitializingBean
인터페이스에서 제공한다.destroy()
DisposableBean
인터페이스에서 제공한다.@Configuration
어노테이션을 사용하여 클래스를 설정 파일로 생성할 수 있다.@Bean
어노테이션을 사용하여 빈 객체인 것을 표시해준다.property
태그는 setter
를 이용한다.list
태그는 ArrayList<>
를 이용한다.map
태그는 <!-->xml 설정 파일<-->
<baen id="studentDat" class="ems.member.dao.StudentDao"/>
<bean id="dataBaseConnectionInfoDev" class="ems.member.DataBaseConnectionInfo">
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="userId" value="scott" />
<property name="userPw" value="tiger" />
</bean>
<bean id="informationService" class="ems.member.service.EMSInformationService">
<property name="developers">
<list>
<value>Cheney.</value>
<value>Eloy.</value>
<value>Jasper.</value>
<value>Dillon.</value>
<value>Kian.</value>
</list>
</property>
<property name="administrators">
<map>
<entry>
<key>
<value>Cheney</value>
</key>
<value>cheney@springPjt.org</value>
</entry>
<entry>
<key>
<value>Jasper</value>
</key>
<value>jasper@springPjt.org</value>
</entry>
</map>
</property>
</bean>
// xml과 동일한 java 설정 파일
@Configuration
public class MemberConfig {
@Bean
public StudentDao studentDao() {
return new StudentDat();
}
@Bean
public DataBaseConnectionInfoDev dataBaseConnectoinInfoDev() {
DataBaseConnectionInfoDev infoDev = new DataBaseConnectionInfoDev();
infoDev.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:xe");
infoDev.setUserId("scott");
infoDev.setUserPw("tiger");
return infoDev;
}
@Bean
public InformationService informationService() {
InformationService info = new InformationService();
ArrayList<String> developers = new ArrayList<String>();
developers.add("Cheney.");
developers.add("Eloy.");
developers.add("Jasper.");
developers.add("Dillon.");
developers.add("Kian.");
info.setDevelopers(developers);
Map<String, String> administrators = new HashMap<String, String>();
adnubustrators.put("Cheney", "cheney@springPjt.org");
adnubustrators.put("Jaspter", "jasper@springPjt.org");
info.setAdministrators(administrators);
}
}
AnnotationConfigApplicationContext(ClassName.class)
를 이용하여 가져올 수 있다.public static void main(String[] arg) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MemberConfig.class);
}
public static void main(String[] arg) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MemberConfig1.class, MemberConfig2.class, MemberConfig3.class);
}
@Autowired
로 필요한 객체를 생성해주면 된다.@Import()
어노테이션을 사용하여 해당 설정 파일을 import 할 수 있다.// 설정 파일
@Configuration
@Import({MemberConfig2.class, MemberConfig3.class})
public class Memberfig1 {
...
}
// main 클래스
public static void main(String[] arg) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MemberConfig1.class);
}