섹션 4. 설정 및 구현
12-1강 어노테이션을 이용한 스프링 설정 - 1
12-1-1 XML 파일을 Java 파일로 변경하기
@Configuration
public class MemberConfig {
@Bean
public StudentDao studentDao() {
return new StudentDao();
}
//메소드 이름 = bean id, 반환형은 객체의 타입
@Bean
public StudentRegisterService registerService() {
return new StudentRegisterService(studentDao());
}
//생성자에 객체 주입할 때는 메소드 호출
@Bean
public DataBaseConnectionInfo dataBaseConnectionInfoDev() {
DataBaseConnectionInfo infoDev = new DataBaseConnectionInfo();
infoDev.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:xe");
infoDev.setUserId("scott");
infoDev.setUserPw("tiger");
return infoDev;
}
//setter로 객체 주입할 때는 setter 메소드 이용
@Bean
public EMSInformationService informationService() {
EMSInformationService info = new EMSInformationService();
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>();
administrators.put("Cheney", "cheney@springPjt.org");
administrators.put("Jasper", "jasper@springPjt.org");
info.setAdministrators(administrators);
Map<String, DataBaseConnectionInfo> dbInfos = new HashMap<String, DataBaseConnectionInfo>();
dbInfos.put("dev", dataBaseConnectionInfoDev());
dbInfos.put("real", dataBaseConnectionInfoReal());
info.setDbInfos(dbInfos);
return info;
}
//한 번에 여러 객체를 주입하는 경우
}
AnnotationConfigApplicationContext ctx =
new AnnotationConfigApplicationContext(MemberConfig.class);
//MemberConfig.class를 사용하여 컨테이너 생성
12-2강 어노테이션을 이용한 스프링 설정-2
12-2-1 Java 파일 분리
유지 보수에 유리하게 하기 위해, 기능별로 구분해서 @Configuration java 파일 여러개로 분리
의존객체가 있는 경우에는
@Configuration
public class MemberConfig3 {
// MemberConfig2.class 의 DataBaseConnectionInfo @Bean 객체가 자동주입됨.
@Autowired
DataBaseConnectionInfo dataBaseConnectionInfoDev;
@Autowired
DataBaseConnectionInfo dataBaseConnectionInfoReal;
@Bean
public EMSInformationService informationService() {
EMSInformationService info = new EMSInformationService();
...
Map<String, DataBaseConnectionInfo> dbInfos = new HashMap<String, DataBaseConnectionInfo>();
dbInfos.put("dev", dataBaseConnectionInfoDev);
dbInfos.put("real", dataBaseConnectionInfoReal);
info.setDbInfos(dbInfos);
return info;
}
}
AnnotationConfigApplicationContext ctx =
new AnnotationConfigApplicationContext(MemberConfig1.class, MemberConfig2.class, MemberConfig3.class);
12-2-2 @Import 어노테이션
@Configuration
@Import({MemberConfig2.class, MemberConfig3.class})
public class MemberConfigImport {
...
}
AnnotationConfigApplicationContext ctx =
new AnnotationConfigApplicationContext(MemberConfigImport.class);
'스터디📖 > Spring' 카테고리의 다른 글
4. 설정 및 구현 - 3 (0) | 2021.07.09 |
---|---|
4. 설정 및 구현 - 2 (0) | 2021.07.08 |
4. 설정 및 구현 (0) | 2021.07.06 |
3. 의존 객체 - 2 (0) | 2021.07.05 |
3. 의존 객체 - 1 (0) | 2021.07.02 |