코어 컨테이너 - @ autowired 및 자원
이전 섹션에서는 XML 형식으로 메타 데이터를 사용하여 IOC 컨테이너를 구성하는 방법을 보았다.
자바 해설을 통해 기본 구성이 활성화되어 있지 않습니다, 그게 nell'applicationContext를 입력할 수 있습니다. <context:annotation-config/> XML 태그는.
종속성을 구성하는 autowired @를 사용하는 방법 여기예요.
@ 물건 Autowired
공용 클래스 {AutowiredBean1
개인 ServiceAW1 Service1에;
개인 ServiceAW2 Service2;
@ Autowired
공공 AutowiredBean1 (ServiceAW1 Service1에, ServiceAW2 Service2) {
슈퍼 ();
this.service1 = Service1에;
this.service2 = Service2;
}
/ **
* 비즈니스 로직 ..........
* /
}
그리고 nell'applicationContext. XML
<context:annotation-config/> <bean id="serviceAW1" class="it.mrwebmaster.di.autowired.ServiceAW1Impl"/> <bean id="serviceAW2" class="it.mrwebmaster.di.autowired.ServiceAW2Impl"/> <bean id="autowiredBean1" class="it.mrwebmaster.di.autowired.AutowiredBean1"/>
@ 세터 또는 필드 Autowired
공용 클래스 {AutowiredBean2
@ Autowired
개인 ServiceAW1 Service1에;
개인 ServiceAW2 Service2;
공공 ServiceAW1 getService1 () {
Service1에 반환;
}
공공 ServiceAW2 getService2 () {
Service2 반환;
}
공공 무효 setService1 (ServiceAW1 Service1에) {
this.service1 = Service1에;
}
@ Autowired
공공 무효 setService2 (ServiceAW2 Service2) {
this.service2 = Service2;
}
/ **
* 비즈니스 로직 ..........
* /
}
그리고 nell'applicationContext. XML
<bean id="autowiredBean2" class="it.mrwebmaster.di.autowired.AutowiredBean2"/>@와 함께 같은 수업을 두 원두가있는 경우 가능한 모호성이있다면 당신이 specficare 예를 들어, 주입하려는 콩의 ID에 대한 @ 한정자를 사용할 수 autowired.
@ Autowired @ 한정자 ( "serviceAW1") 개인 ServiceAW1 Service1에;또는
@ Autowired
공공 AutowiredBean4 (@ 한정자 ( "serviceAW1") ServiceAW1 Service1에, ServiceAW2 Service2) {
.....
자원
봄이 우리에게 제공하는 또 다른 매우 유용한 기능은 자원 (어떤이 같은 파일 또는 URL로 변경될 수 있음)에 쉽게 액세스할 수 있습니다. 이 기능은 리소스 인터페이스와 해당 구현을 사용하여 구현됩니다.
인터페이스는 다른 기능을 추가 리소스 InputStreamSource를 확장합니다. 이 인터페이스의 주된 구현은 다음과 같습니다
- UrlResource는 URL을 통해서 accedibili있는 모든 리소스에 대한 액세스를 허용합니다.
- ClassPathResource은 클래스 패스에있는 모든 리소스에 대한 액세스를 허용합니다.
- FileSystemResource는 파일에 대한 액세스를 허용합니다.
- ServletContextResource는 ServletContext를 통해 정상적으로 accedibili있는 모든 리소스에 대한 액세스를 허용합니다.
- InputStreamResource는 주어진 InputStream의 리소스에 액세스할 수 있습니다.
- ByteArrayResource는 주어진 ByteArray의 리소스에 액세스할 수 있습니다.
다음 예제를 통해 우리는 어떻게 instaziare 자료를 볼 수 있습니다 우리의 콩으로 주입 :
공용 클래스 {ResourceBean
민간 자원 자원;
공공 공극 setResource (자원 자원) {
this.resource = 자원;
}
공공 자원 getResource () {
리소스를 반환;
}
}
nell'applicationContext. XML
<bean id="resourceBean" class="it.mrwebmaster.resources.ResourceBean"> <property name="resource" value="classpath:resource"> </ 부동산> </ 빈>
예제에서는 인스턴스 것입 자원의 타입을 정의하지 않지만, 스프링은 매우 정확 인스턴스. 이 리소스 문자열의 세 가지 유형 Queli에 따르면 있습니다 instaziata는 자원입니다
- 클래스 패스는 : ClassPathResource를 인스턴스
- 파일 : FileSystemResource를 인스턴스
- http:instanzia UrlResource






