JAVA

자바 빈(Bean) 이란 무엇인가?

bysnow 2021. 5. 6. 19:33
728x90
반응형
SMALL

서블릿과 jsp 파일을 통해 웹 프로그램을 작성하는 법을 배운 후(해당 내용 또한 정리해 올릴 예정이다.) 스프링 프레임워크 수업이 시작되었다. 첫날 제일 기억에 남는 용어는 바로 빈(bean)이었다. xml 파일에서 끊임없이 bean을 만들고, 사용하기 때문이다. bean이 무엇인지 알고 넘어가야겠다.

 

자바 빈즈는 자바로 작성된 소프트웨어 컴포넌트이며 데이터 표현을 목적으로 하는 자바 클래스이다. 자바 빈즈 클래스는 'Java Beans Convention'을 지켜야 하며, Java Beans Convention은 다음과 같다.

  • 클래스는 인자(Argument)가 없는 기본 생성자(Default constructor)를 갖는다
  • 클래스의 멤버 변수는 프로퍼티(Properties)라고 하며 private 접근 제한자를 가져야 한다. 
  • 클래스의 프로퍼티들은 Getter/Setter를 통해 접근할 수 있어야 한다
    • Getter의 이름은 get{프로퍼티 이름} 이며, Setter의 이름은 set{프로퍼티 이름}이다
    • Getter/setter의 접근 제한자는 public이어야 한다. 
    • 프로퍼티의 타입이 Boolean인 경우 is로 시작할 수 있다
    • Getter의 경우 파라미터가 존재하지않아야 하며, setter의 경우 하나 이상의 파라미터가 존재한다
    • Read Only인 경우 Setter는 없을 수 있다.
  • Serializable 인터페이스를 구현한다. 
  • 자바빈 클래스는 패키징 되어야 한다. (Package)

출처 : soft.plusblog.co.kr/58

 

자바 빈(Java Bean)이란 무엇인가? (자바 빈 예제)

자바 프로그래밍 관련 문서를 찾아보다가 '자바 빈즈(Java Beans)'라는 단어를 듣게 되었다. 자바빈즈(Java Beans)는 자바(Java)로 작성된 소프트웨어 컴포넌트를 일컫는 말로 데이터 표현을 목적으로하

soft.plusblog.co.kr

자바 빈은 반복적인 작업을 효율적으로 하기 위해 사용되며, 자바의 속성과 메소드로 이루어진 클래스이다.

jsp페이지를 만들고, 액션태크를 이용하여 빈을 사용하며, 빈의 내부 데이터를 처리한다.

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
                             "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
   <bean id="personService" class="com.spring.ex01.PersonServiceImpl">
      <property name="name">
         <value>홍길동</value>
      </property>
   </bean>
   
   <bean id="personService1" class="com.spring.ex02.PersonServiceImpl">
        <constructor-arg   value="이순신" />
   </bean>

   <bean id="personService2" class="com.spring.ex02.PersonServiceImpl">
       <constructor-arg   value="손흥민"  />
       <constructor-arg   value="23"  />
   </bean>

</beans>


위의 코드는 xml파일에서 bean을 선언한 내용이다. 빈 등록, 빈 설정을 모두 XML에서 작성할 경우에 이 포맷을 이용한다. 다른 방법들은 후에 다룰 예정이다.

만일 xml파일에 context namespace와 <context:annotation-config/>태그를 추가하면 빈 설정을 XML이 아닌 빈 클래스의 어노테이션을 검색하여 반영할 수 있다.

 

<bean>태그의 필수 속성은 class 속성 뿐이다. id는 빈의 id를 통해 참조할 경우가 있을 때만 설정해도 된다.

자바 코드에서 getBean()으로 빈을 가져오거나, 주입 설정에서 ref속성으로 빈을 참조하는 경우에 id가 필요하다.

id, class 외에도 lazy-init, scope, primary, init-method, destroy-method 속성이 있다.

 

  • id : 빈 이름(id) 설정
  • class : 빈 타입 설정
  • scope : 빈의 scope 설정. singleton/prototype
  • primary : true를 지정하여 같은 타입의 빈이 여러개 일때 우선적으로 사용할 빈 설정
  • lazy-init : true를 지정하여 빈을 사용할 때 객체가 생성되도록 설정
  • init-method : 빈 객체가 생성될때 호출할 메소드 설정
  • destroy-method : 빈 객체가 소멸될때 호출할 메소드 설정

 

 

728x90
반응형
LIST

'JAVA' 카테고리의 다른 글

JSch를 활용하여 외부 서버 파일 가져오기(파일 컬럼 개수)  (0) 2024.04.11
파일 입출력 연습  (0) 2021.05.06
상속-기본예제  (0) 2021.03.29
Java - If 문의 사용  (0) 2021.03.29
클래스와 메소드 예제 1  (0) 2021.03.18