Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 일정계획
- 이클립스
- 버전
- NoClassDefFoundError
- 마이바티스
- dbeaver
- git
- ㅗ르
- 생략
- 루팅
- Version
- marketplace
- db admin
- 의존성주입
- 캐릭터셋
- Spring
- 마리아DB
- 제어역전
- mybatis
- jsonview
- Eclipse
- SVN
- ResponseBody
- 윈도우
- 설정파일
- 리눅스
- 스프링
- cutomobjectmapper
- 긴문자열
- AOP
Archives
- Today
- Total
프밍일기
IoC(Inversion of Control, 제어역전) 본문
■ IoC(Inversion of Control, 제어역전)
- 개발자가 작성한 프로그램을 프레임워크가 호출할 수 있도록 설정하는것
- 어노테이션을 이용하는 방식과 XML을 사용하는 방식이 있음
■ 어노테이션을 이용한 IoC 설정
@Configuration public class DaoFactory { @Bean public UserDao userDao() { return new UserDao(connectionMaker()); } @Bean public ConnectionMaker connectionMaker() { return new NConnectionMaker(); } }
- @Configuration : 스프링 프레임워크가 사용할 Class임을 나타냄
- @Bean : object 생성을 담당하는 IoC용 메소드임을 나타냄
■ IoC 설정을 이용한 메소드 호출
public class UserDaoTest { public static void main(String[] args) throws ClassNotFoundException, SQLException { // Non-DI // UserDao dao = new DaoFactory().userDao(); // DI of Annotation // ApplicationContext context = new AnnotationConfigApplicationContext(DaoFactory.class); // UserDao dao = context.getBean("userDao", UserDao.class); // DI of XML ApplicationContext context = new GenericXmlApplicationContext("applicationContext.xml"); UserDao dao = context.getBean("userDao", UserDao.class); UserVo uservo = new UserVo(); uservo.setId("user_id"); uservo.setName("user_name"); uservo.setPassword("user_password"); dao.add(uservo); System.out.println(uservo.getId() + " 등록 성공"); UserVo uservo2 = dao.get(uservo.getId()); System.out.println(uservo2.getName()); System.out.println(uservo2.getPassword()); System.out.println(uservo.getId() + " 조회 셩공"); } }
- 6) 기존 방식 object 생성
- 9~10) IoC(Annotation) 방식으로 object 생성. 프레임워크가 하는 역할이므로 따로 사용할 일은 없음
- 13~14) IoC(XML) 방식으로 object 생성. 프레임워크가 하는 역할이므로 따로 사용할 일은 없음
'Spring' 카테고리의 다른 글
Spring과 MyBatis 연동 예제 (2) | 2017.04.07 |
---|---|
AOP - Annotation (0) | 2017.03.24 |
AOP - XML (0) | 2017.03.24 |
스프링 컨테이너 <beans> 설정 유의사항 (0) | 2017.03.03 |
DI(Dependency Injection, 의존성주입) (0) | 2017.01.28 |
Comments