봄 연구 노트 : 콩의 구성 및 세부 사항

우리는 XML 설정 파일 속성을 참조

하나에서 <빈> 다음 속성 탭이 있습니다

-신분증

-수업

이드 : 컨테이너 콩, 고유 ID를 식별합니다.

우리는 프로그램이 ID로 해당 빈을 식별하는 것입니다 알고있다.

등급 : 콩 전체 클래스 이름과 반사의 방법으로 빈 컨테이너 IOC를 작성, 유무 콩 인수 생성자에서 할 필요가있다.

우리는 XML 설정 파일, 클래스는 패키지 이름과 클래스의 클래스 이름을 때, 그것은 반사 메커니즘을 사용하여 클래스를 생성하는 것을 알고있다.

우리의 클래스 생성자는 인수하지 않을 때, 그것은 생성자 메시지를 표시하지 않습니다

어떤 생성자 경우, 인수없이 기본 생성자를 호출합니다.


2.IOC 용기

IOC 컨테이너 대신에 ApplicationContext는 Spring은 달성하기 위해 IOC 컨테이너의 두 가지 기본 유형을 제공합니다.

-BeanFactory : 기본적으로 IOC 컨테이너

-ApplicationContext은 : 고급 기능을 제공하는 인터페이스는 BeanFactory에의 자식입니다.

차이 :

BeanFactoty 인프라 스프링 프레임 워크 자체에 대한 봄, ApplicationContext를 스프링 프레임 워크는 개발자를위한 것입니다 동안, 대부분의 사용 ApplicationContext는 BeanFactory를 대신 바닥. (교육 말)

같은 :

구성 파일은 동일합니다.

ApplicationContext를 :

구현 및 인터페이스보고함으로써 (+ H Ctrl 키를 누르면 선택 IDEA) 계층을 볼 수

주요 ApplicationContext의 구현 클래스 :

-ClassPathXmlApplicationContext은 : 클래스 경로에서 구성 파일을로드

-FileSystemXmlApplicationContext는 : 파일 시스템에서 구성 파일을로드

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

라인에서 만든 용기와 콩의 부하를 달성하기 위해


주입 의존적으로 두 종류의 사용 3.Spring

- 생성자 삽입

주입 -setter

첫째, 우리는이 개 실험 대상을 선언

public class Person {
    private String name;
    private Integer age;
    private Integer hight;
    //构造,set、get方法略
}

public class Man {
    private Person person;
    //构造,set、get方法略
}

생성자 주입

생성자 분사되는 구성을 구현하는 방법에 기초 하여, 전체 의존성 주입 용기를 달성하는 파라미터 세트와 생성자 클래스를 호출 <생성자 ARG> <콩> 태그 소자

생성자 입성 값 주입의 값 속성을 사용하여 파라미터 값을 사용하여 XML 콩 추가

해당 XML 파일

<bean id="person" class="com.sakura.spring.beans.constructor.Person">
    <constructor-arg value="二狗" index="0" type="java.lang.String"></constructor-arg>
    <constructor-arg value="170" name="age"></constructor-arg>
    <constructor-arg value="12"  name="hight"></constructor-arg>
</bean>
<bean id="man" class="com.sakura.spring.beans.constructor.Man">
    <construc 大专栏  Spring学习笔记:Bean的配置及其细节tor-arg ref="person"/>
</bean>

라벨에서 구성의 복수의 값을 속성 값 분사를 지정하여, 라벨 방식에 해당하는 속성.

어느 주목해야한다 :

경우 (1) 여기서는 지정된 값, 즉

<constructor-arg value="二狗" ></constructor-arg>
<constructor-arg value="170" ></constructor-arg>
<constructor-arg value="12"></constructor-arg>

기본 할당 주문 컨테이너 클래스 속성은 자동 변환을 입력

문자열 유형에 직면 INT 입력에 해당하는 경우, 컴파일러는 불평 할 것이다.

2. 인덱스를 지정하는 데이터의 입력 순서에 기초하여 할당 될 컨테이너의 값에 대응하는 입력 할

본질적으로 주어진 과제를 반복합니다 생성자, 이름 또는 오류의 값을 호출하기 때문에 3. 당신은, 그것의 정확한 주입을 이름 속성을 지정할 수 있습니다

(4) 또한 심판의 지시에 다른 콩에 의존 할 수

테스트 코드 :

public static void main(String[] args) {
    ApplicationContext ctx = new ClassPathXmlApplicationContext("com/sakura/spring/beans/constructor/constructor-applicationContext.xml");
    Person person=ctx.getBean("person",Person.class);
    System.out.println(person);

    Man man=ctx.getBean("man",Man.class);
    System.out.println(man);
}

테스트 결과 :

Person{name='二狗', age=170, hight=12}
Man{person=Person{name='二狗', age=170, hight=12}}

실현 의존성.

세터 주입

컨테이너가 호출 할 때 인수가없는 생성자 , 빈 컨테이너의 초기화를 빈을 호출 세터 setter 함수 일관되게 사용하는 <빈> 태그 <부동산> 요소 속성 속성 이름 속성 지정 클래스 요구, 다른 같은 생성자 메서드
XML에 새로운 빈을 추가 할 수

<bean id="personSet" class="com.sakura.spring.beans.constructor.Person">
    <property name="hight" value="170"></property>
    <property name="age" value="12"></property>
    <property name="name" value="张三"></property>
</bean>

대응 설정 방법에 대응하는 출력을 추가함으로써
, 우리는 출력을 볼 수

set方法..height
set方法..age
set方法..name
Person{name='张三', age=12, hight=170}

설정 주입 방법

단일 값의 주입 외에도 때로는 어레이 또는 컬렉션에 주입해야

<목록> : 값을 주입 수 있도록 반복

<설정> : 값을 주입하는 고유해야

<지도> 키 (명) 값 세트를 주입하면, 이름 및 값 쌍은 임의의 유형일 수있다

<소품> 키 (명) 값 세트를 주입하면, 이름 및 값 쌍은 임의의 유형일 수있다

시험 종류 :

public class JavaCollection {
    private List list;
    private Map map;
    private Properties prop;
}

콩을 추가합니다 :

<bean id="coll" class="com.sakura.spring.beans.constructor.JavaCollection">
    <property name="list">
        <!-- 注入集合 值可重复 set就不举例了-->
        <list>
            <value>list1</value>
            <value>list1</value>
        </list>
    </property>
    <property name="map">
        <!-- 注入map -->
        <map>
            <entry key="二蛋">
                <value>18</value>
            </entry>
            <entry key="三蛋">
                <value>5</value>
            </entry>
        </map>
    </property>
    <property name="prop">
        <!-- 注入properties -->
        <props>
            <prop key="二黑">男</prop>
            <prop key="三黑">男</prop>
        </props>
    </property>
</bean>

테스트 결과 :

JavaCollection{list=[list1], map={二蛋=18, 三蛋=5}, prop={三黑=男, 二黑=男}}

추천

출처www.cnblogs.com/lijianming180/p/12389220.html