자바빈(JavaBean)
일반적으로 데이터를 표현하고 관리하는 데 사용되는 클래스입니다. 자바빈은 특정한 규칙을 따르는 클래스로서, 클래스 내부에 프로퍼티(Property)를 정의하고, 이 프로퍼티에 접근할 수 있는 Getter/Setter 메소드를 제공해야 합니다. 자바빈의 프로퍼티는 일반적으로 데이터를 저장하고 반환하는 용도로 사용됩니다.
자바빈 등록 방법
public class Person {
private String name;
private int age;
public Person() {}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
}
스프링빈(Spring Bean)
스프링 프레임워크(Spring Framework)에서 관리되는 객체를 말합니다. 스프링빈은 자바빈의 형태를 따르는 객체이며, 스프링 컨테이너(Spring Container)에 등록되어 관리됩니다. 스프링 컨테이너는 스프링빈을 생성하고, 필요에 따라 DI(의존성 주입, Dependency Injection)를 수행하여 스프링빈 간의 의존 관계를 관리합니다.
스프링빈은 스프링 프레임워크에서 제공하는 다양한 기능을 활용할 수 있습니다. 스프링빈은 AOP(관점 지향 프로그래밍, Aspect Oriented Programming)와 같은 기술을 이용하여 애플리케이션의 모듈성, 유연성, 재사용성 등을 높일 수 있습니다. 스프링빈은 또한 스프링의 다양한 모듈과 연동하여 사용할 수 있습니다.
스프링빈을 등록할 때에는 일반적으로 Xml, Annotation, JavaConfig 등을 이용하여 등록합니다. 스프링은 이러한 설정 정보를 바탕으로 스프링빈을 생성하고 관리합니다. 스프링빈의 생성과 관리는 스프링 컨테이너가 담당하므로, 개발자는 단순히 스프링빈을 사용하기만 하면 됩니다.
Annotation을 이용한 스프링빈 등록 방법
@Component
public class Person {
private String name;
private int age;
public Person() {}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
}
위의 코드는 Annotation을 이용하여 Person 클래스를 스프링빈으로 등록하는 예제입니다. @Component Annotation을 클래스에 추가하면, 해당 클래스를 스프링빈으로 자동 등록할 수 있습니다.
JavaConfig을 이용한 스프링빈 등록 방법
@Configuration
public class AppConfig {
@Bean
public Person person() {
Person person = new Person();
person.setName("홍길동");
person.setAge(30);
return person;
}
}
위의 코드는 JavaConfig를 이용하여 Person 클래스의 인스턴스를 스프링빈으로 등록하는 예제입니다. @Configuration Annotation을 클래스에 추가하고, @Bean Annotation을 메소드에 추가하여 해당 메소드의 반환값을 스프링빈으로 등록할 수 있습니다.
스프링의 DI 기능을 이용하여 스프링빈 간의 의존 관계를 설정하고, 스프링의 AOP 기능을 이용하여 애플리케이션의 효율성을 높일 수 있습니다. 스프링빈은 스프링 프레임워크에서 제공하는 다양한 기능과 모듈을 활용하여 더욱 효과적으로 사용할 수 있습니다.
'💻dev > 🌱Java+Spring' 카테고리의 다른 글
Java | 인터페이스(Interface)를 사용하는 이유와 예제 (0) | 2023.04.10 |
---|---|
Spring | 인프런 김영한님의 스프링 입문 강의 정리 - Test 편 (0) | 2023.04.07 |
Spring | @ResponseBody, @RequestBody 어노테이션 알아보기 (0) | 2023.04.06 |
Spring | Java의 프레임워크 Spring 과 Spring Boot를 알아보자! (0) | 2023.04.05 |
IntelliJ | 인텔리제이 맥OS 단축키 모음 (230406 수정) (0) | 2023.04.05 |