Spring의 두 가지 주입 방식(Set 및 구성) 인스턴스 이해
1:Set 주입은 주입을 받는 클래스에서 주입될 유형을 정의하는 set 방법을 가리키며 매개 변수에서 주입해야 할 요소를 정의합니다.Set 주입식은 Bean 속성을 조립하는 직접적인 방법이지만 Set 주입의 단점 중 하나는 모든 가변 속성이 set 방법을 통해 접근할 수 있다고 가정하고 어떤 속성이 필수적이고 어떤 속성이 선택할 수 있는지 명확하게 표시할 수 없다는 것이다.
2: 구조 주입은 수신 주입의 클래스에서 구조 방법을 정의하고 구조 방법에서 주입이 필요한 파라미터를 정의한다.구조 주입 방식의 장점은 구조 방법을 통해 의존 관계를 강제하는 것이다.
다음은 두 가지 방법의 사용법을 소개한다.
1: Myeclipse에서 (필자가 사용한 것은 Myeclipse 10 버전) 새 프로젝트(Java 프로젝트나 웹 프로젝트 모두 가능)
2: 오른쪽 단추 항목 - MyEclipse - Add Spring Capabilities(Spring 지원 추가), 3.0 버전을 선택하고 인용 핵심 라이브러리를 추가하고 다음을 누르십시오.
3:spring bean 프로필을 프로젝트 src 디렉터리에 새로 만듭니다.
4: 다음 단계를 누르면hibernate 설정 페이지를 지정하고 기본값으로 눌러서 완성하면 됩니다.
5: 새 클래스 HelloWorld.Java
package com.xiami.spring;
public class HelloWorld {
private String str;
/**
*
*/
public HelloWorld() {
}
/**
*
*
* @param str
*/
public HelloWorld(String str) {
this.str = str;
}
/**
* Set
* @param str
*/
public void setStr(String str) {
this.str = str;
}
/**
*
*/
public void sayHello() {
System.out.println(str);
}
}
6: 새 테스트 클래스 테스트.java
package com.xiami.spring;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// spring
BeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
HelloWorld helloWorld = (HelloWorld) bFactory.getBean("helloService");
helloWorld.sayHello();
}
}
7: 응용 프로그램 Context를 엽니다.xml 파일, bean 설정 추가다음과 같은 두 가지 방법으로 bean을 추가합니다.
1: Set 주입 방식의 Bean 클래스 구성
응용 프로그램 컨텍스트를 우클릭하십시오.xml의 편집 인터페이스 - Spring - new bean에서 Bean 마법사 창을 열고 Bean Id(사용자 정의 이름과 Test.java에서 getBean("????)을 작성합니다.대응하다.Bean class는 주입할 Hello World 클래스를 선택합니다.Properties 속성 탭을 클릭하여 이 bean에 속성을 새로 만듭니다.
8: 속성 마법사 창에Name 을 HelloWorld에 입력합니다.java의 속성 이름, Spring Type은value를 선택하고, type은String을 선택하고, Value는값을 마음대로 채웁니다.finish도 가능합니다.
9: 응용 프로그램 컨텍스트를 저장합니다.xml, bean을 추가한 후 프로필에 빨간색 표시된 부분이 많아서 독자가 Test를 실행할 수 있습니다.java.테스트 해봐.hello 월드 문자열이str 변수에 주입된 것을 발견했습니다.
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- Set -->
<!--
<span style="color:#ff0000;"><bean id="helloService" class="com.xiami.spring.HelloWorld"
abstract="false" lazy-init="default" autowire="default">
<property name="str">
<value type="java.lang.String">hello world</value>
</property>
</bean></span>
-->
<!--
<bean id="helloService" class="com.xiami.spring.HelloWorld"
abstract="false" lazy-init="default" autowire="default">
<constructor-arg>
<value type="java.lang.String"> </value>
</constructor-arg>
</bean>
-->
</beans>
2: 구조 주입 방식의 Bean 클래스 구성위 Set 방식의 Bean Wizard(Bean 마법사) 창에서 Properties 탭을 선택하지 않고 Constructor Args 탭으로 변경합니다.구조 매개변수를 추가합니다.Index 및 Java Class는 입력할 필요가 없습니다.
10: 구조 방식 bean을 추가할 때 먼저 주석을 달거나 삭제해야 하며 여러 개의 id가 같은 bean을 허용하지 않습니다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.