spring 제어 반전 과 주입 의존 에 대한 간단 한 이해

2265 단어 자바spring
최근 에 spring boot 를 공부 할 때 저 는 spring 에 대해 추상 적 으로 뜻 을 말 하지 못 한 다 는 것 을 알 게 되 었 습 니 다.그 당시 에 spring 이 사용 에 국한 되 었 다 는 것 을 이해 하지 못 했 습 니 다.이 분야 에 처음 들 어 온 졸업생 에 게 는 안 됩 니 다.좋 은 습관 을 기 르 기 위해 업무 중의 문 제 를 블 로 거 로 정리 하여 자신 이 볼 수 있 도록 하 겠 습 니 다.
지금 예 를 들 어 보 겠 습 니 다.
functionservice 클래스 를 만 들 었 습 니 다.
public class FunctionService {

	public String sayHello(String word) {
		return "hello"+word;
	}
	
}

이제 이 방법 을 사용 하 겠 습 니 다.
/**
 * @author pm_WeiYu
 *	functionservice       
 */
public class UserFunctionService {
	
	FunctionService fs=new FunctionService();
	
	@Test
	public void log() {
		fs.sayHello("aaa");
	}
}

이 럴 때 userfunctionservice 는 functionservice 에 의존 해 야 한다 고 할 수 있다.
그러나 이러한 코드 를 통 해 우 리 는 결합 성 이 매우 높다 는 것 을 알 수 있다.예 를 들 어 우리(userfunctionservice)가 시장(functionservice)에 가서 채 소 를 사 야 한 다 는 것 이다.우 리 는 서로 다른 시장 에 가서 서로 다른 채 소 를 사 야 한다.이때 전자상거래 플랫폼 이 이런 자원 을 통합 시 킬 수 있다 면 우 리 는 직접 전자상거래 플랫폼(spring)에 가서 구 매 하면 된다.이것 은 spring(반전 IOC 제어)에 요리 의 정보(실체 bean)를 주입(DI)하여 우리(userfunctionservice)에 게 사용 할 수 있 도록 제어 권 을 주 었 다.이렇게 해서 우 리 는 장 을 봐 야 한다.전자상거래 플랫폼 에 가서 주문 하면 된다.
다음은 spring 의 방법 입 니 다(spring 4.x 자바 류 설정 파일 을 통 해)
설명 service 를 추가 하면@component@service@Repository@Controller 를 선택 할 수 있 습 니 다.
@Service
public class FunctionService {

	public String sayHello(String word) {
		return "hello"+word;
	}
	
}

설정 클래스 만 들 기
/**
 * @author pm_WeiYu
 * spring   
 */

@Configuration
@ComponentScan("god.demo.service")
public class DiCongifg {

}

주입 류
/**
 * @author pm_WeiYu
 *	functionservice       
 */

public class UserFunctionService {
	@Autowired
	FunctionService fs;
	
	@Test
	public void log() {
		AnnotationConfigApplicationContext acac=new AnnotationConfigApplicationContext(DiCongifg.class);
		FunctionService bean = acac.getBean(FunctionService.class);
		System.out.println(bean.sayHello("aaa"));

	}
}

키워드@Autowired 를 사용 하여 실 체 를 그 기능 에 주입 합 니 다.
여기 서 주의해 야 할 것 은 spring-cord 4.0.2 버 전 이상 에서 AnnotationConfigApplication Context 를 사용 하면 찾 을 수 없습니다.
현재 대상 을 만 드 는 권력 이 spring 에 게 넘 어 가 는 것 을 볼 수 있 습 니 다.사용 할 때 주입 해 야 할 실 체 를 주입 하면 됩 니 다.

좋은 웹페이지 즐겨찾기