반응형
SMALL
[1] 외부파일 연결
(1) 외부파일을 연결하는 목적
변경에 유리한 코드를 만들기 위해 외부파일을 이용한다.
스프링 컨테이너인 Map 과 외부 파일(Properties, XML , Java)을 이용한다
프로그램의 코드를 변경하지 않고 properties 파일을 변경해서 사용한다
[2] xml 외부파일 연결
(1) key , value 형식의 xml 외부파일 연결
JAVA 코드를 변경하지 않고 외부 파일에 저장된 (key, value) 값을 읽어 실행하고
추후 유지보수같은 변경이 필요할 경우 외부파일의 (key, value)값을 변경하여 유지보수한다
외부파일 config.xml 를 생성한다.
외부파일xml 의 value로 해당된 값이 출력된다.
[3] 객체 반복 생성
(1) 객체 생성 반복
매번 객체 생성 scope= prototype
매번 객체 생성 scope= prototype
[4] <property >
(1) <property> 기능
인스턴스 변수인 bean의 속성을 초기화 할수 있다
설정파일로 setter를 이용하여 적용하도록 되어있다
setter로 굳이 호출하지 않아도 만으로 사용할수 있다
class Car {
String color;
int oil;
Engine engine;
Door[] doors;
}
Car car = new Car();
//초기화를 아래처럼 안해도된다 . bean을 초기화하였기 때문에
car.setColor("red")
car.setOil(100);
car.setEngine(engine);
car.setDoors(new Door[] { new Door(), new Door()}
<bean id="car" class="con.fastcampus.ch3.car">
<propperty name="color vlaue="red"/>
<propperty name="oil vlaue="100"/>
<propperty name="engine vlaue="engine"/>
<propperty name="doors vlaue="red"/>
<array value-type="com.fastcampus.ch3.Door">
<ref bean="door"/>
<ref bean="door"/>
</array>
</propperty>
</bean>
<bean id="engine" class="con.fastcampus.ch3.Engine">
<bean id="door" class="con.fastcampus.ch3.Door" scope="prototype"/>
(2) <property-arg> 기능
생성자를 이용해서 bean의 속성을 초기화 할수 있다
class Car {
String color;
int oil;
Engine engine;
Door[] doors;
}
public Car(String color, int oil, Engine engine, Door[] doors) {
this.color = color;
this.oil = oil;
this.engine = engine;
this.doors =doors;
}
<bean id="car" class="con.fastcampus.ch3.car">
<propperty-arg name="color vlaue="red"/>
<propperty-arg name="oil vlaue="100"/>
<propperty-arg name="engine vlaue="engine"/>
<propperty-arg name="doors vlaue="red"/>
<array value-type="com.fastcampus.ch3.Door">
<ref bean="door"/>
<ref bean="door"/>
</array>
</propperty-arg>
</bean>
<bean id="engine" class="con.fastcampus.ch3.Engine">
<bean id="door" class="con.fastcampus.ch3.Door" scope="prototype"/>
(3) <property> <list> 사용법
<property name ="colors">
<list>
<value>red</value> // String 기본형일때
<value>green</value>
<value>blue</value>
<value>white</value>
<ref bean ="superEngine"/> // 참조형일때
<ref bean ="turboEngine"/>
</list>
</property>
(4) <property> <list> 사용법
<property name ="engine">
<set>
<ref bean ="superEngine"/>
<ref bean ="turboEngine"/>
</set>
</property>
(5) <property> <list> 사용법
<property name ="doors">
<map>
<entry key ="left" vlaue-ref="door"/>
<entry key ="right" vlaue-ref="door"/>
</map>
</property>
반응형
LIST
'🌈 백엔드 > 스프링 프레임워크' 카테고리의 다른 글
스프링 컨테이너 IoC컨테이너 (2) | 2023.09.04 |
---|---|
자바 빈 Bean (0) | 2023.09.04 |
객체자동등록 후 객체자동연결 @Autowired / @ Resource (0) | 2023.09.01 |
객체컨테이너 + 객체자동등록 @Component (0) | 2023.09.01 |
ApplicationContext 객체 컨테이너 생성하기 (0) | 2023.09.01 |