기술나눔

스프링 - 빈의 자동 배선

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

· Autowiring은 Spring이 Bean 의존성을 충족시키는 방법입니다.

· Spring은 자동으로 컨텍스트에서 이를 찾아 bean에 대한 속성을 자동으로 조합합니다.


Spring에는 세 가지 어셈블리 방법이 있습니다.

1. XML의 디스플레이 구성

2. Java의 디스플레이 구성

3. 빈의 암시적 자동 연결 [중요]


시험

Cat, Dog, People 클래스를 만드는 것을 잊지 마세요.

  1. public class MyTest {
  2. @Test
  3. public void test1(){
  4. ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
  5. People people = context.getBean("people", People.class);
  6. people.getDog().shout();
  7. people.getCat().shout();
  8. }
  9. }

ByName 자동 연결

  1. <!--
  2. byName:会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid
  3. -->
  4. <bean id="people" class="com.yang.pojo.People" autowire="byName">
  5. <property name="name" value="辰阳"/>
  6. </bean>

ByType 자동조립

  1. <bean class="com.yang.pojo.Cat"/>
  2. <bean class="com.yang.pojo.Dog"/>
  3. <!--
  4. byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean(必须保证类型全局唯一,如有两个狗就会报错)(可以省略id)
  5. -->
  6. <bean id="people" class="com.yang.pojo.People" autowire="byType">
  7. <property name="name" value="辰阳"/>
  8. </bean>

요약:

·  Byname에서는 모든 Bean의 ID가 고유한지 확인해야 하며, 이 Bean은 자동으로 주입된 속성의 set 메소드 값과 일치해야 합니다.

·  bytype을 사용하려면 모든 Bean의 클래스가 고유한지 확인해야 하며 해당 Bean은 자동으로 주입된 속성 유형과 일치해야 합니다.