Bean은 Java의 객체를 외부에서 생성하는 방법입니다.
프로그램 실행 속도는 느려질 수 있지만,
관리와 유지보수가 편해진다는 장점이 있습니다.
package com.puft.feb101;
public class Dog {
private String name;
private int age;
public Dog() {
}
public Dog(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
원래는 이렇게 Java 코드를
Java파일을 만들어서 객체를 생성했었는데
Spring에서는 Bean파일을 만들어서 대체할 수 있습니다.
src/mainresources에 beans.xml파일을 하나 만들겠습니다.
안에 기본 코드는 냅두고
bean 태그를 활용해서 클래스 경로를 지정하면
객체를 생성할 수 있습니다.
<bean id = "d" class = "cohttp://m.puft.feb101.Dog"></bean>
이 xml객체를 Controller쪽에서 가져와야 하는데
Controller에 다음과 같은 코드를 추가해줍니다.
//AbstractApplicationContext : Bean 객체를 생성하고 관리하는 기능
AbstractApplicationContext aac = new ClassPathXmlApplicationContext("feb102beans.xml");
//aac가 없어질 때 등록해놓은 객체들을 다 없애라
aac.registerShutdownHook();
//aac없애기
aac.close();
다시 xml로 돌아가서 객체의 생성자에 접근하는 방법을 알아보겠습니다.
<bean id = "d2" class = "cohttp://m.puft.feb101.Dog">
<property name="name" value = "개님" />
<property name="age" value = "40" />
</bean>
첫번째 방법인 property 태그는
객체의 변수에 직접 접근해서
값을 집어넣고
<bean id = "d3" class = "cohttp://m.puft.feb101.Dog">
<constructor-arg value = "개느님"/>
<constructor-arg value = "999"/>
</bean>
두번쨰 방법인 constructor-arg는
생성자에 할당된 각 변수
순서대로 value를 넣어주면
각 변수가 들어간 객체를 생성할 수 있습니다.
각 객체는 다음과 같이 HomeController에서 접근할 수 있습니다.
Dog d2 = aac.getBean("d2", Dog.class);
System.out.println(d2.getName());
System.out.println(d2.getAge());
System.out.println("-----------");
Dog d3 = aac.getBean("d3", Dog.class);
System.out.println(d3.getName());
System.out.println(d3.getAge());
aac.getBean메소드를 사용해서 해당 클래스의 객체를 접근할 수 있습니다.
'Spring > 이론' 카테고리의 다른 글
[Spring] POST요청 (0) | 2025.02.11 |
---|---|
[Spring] Autowired (0) | 2025.02.10 |
[Spring] Annotation (0) | 2025.02.10 |
[Spring] 기초 이론 (0) | 2025.02.10 |
[Spring] 초기 세팅 (0) | 2025.02.10 |