티스토리 뷰

프로그래밍/Web

Spring Bean

국윤창 2018. 1. 27. 01:33

1. Spring Bean이란

자주 사용하는 객체를 singleton으로 만들어 놓고 어디서든 불러쓸 수 있도록 한 것.

Java에서도 bean은 재사용이 가능하게 만들어진 component이다.


2. Spring boot에서 bean 쓰기

spring에서는 어떤 클래스를 bean으로 두려면 xml에서 아래와 같이 설정을 해야한다.

<bean id="className" class="com.example.demo.ClassName">
    <property ...>
</bean>

하지만 spring boot에서는 xml설정 대신 annotation을 이용하여 설정하므로 아래 코드와 같이 클래스를 작성한다.

@Configuration
public class ConfigClass
{
    @Bean
    public BeanClass beanClass()
    {
        return new BeanClass();
    }
}

위와 같이 작성하면 BeanClass라는 클래스가 bean으로 등록된다.


Autowired annotation은 @Component나 위와 같이 @Bean을 통해서 bean으로 된 객체를 classpath scanning을 할 때 자동으로 injection해준다.


그래서 아래 코드와 같이 사용하여 bean으로 등록한 클래스를 사용할  수 있다.


public class BeanClass
{
    public String getName() {
        return "BeanClass";
    }
}
@Controller
public class TestController {
    @Autowired
    private BeanClass beanClass;

    @RequestMapping(value="/beanTest", method=RequestMethod.GET)
    public String beanTest(Model model)
    {
        model.addAttribute("beanName", beanClass.getName());

        return "beanTest";
    }
}

그 다음 테스트를 위한 beanTest라는 이름의 view(html)을 작성한다.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Bean Test</title>
</head>
<body>
    <h1>Bean Test</h1>
    <!--/*@thymesVar id="beanName" type="String"*/-->
    <p th:text="'Bean Name: " + ${beanName}"/>
</body>
</html>

실행하고 localhost:8080/beanTest로 접속했을 때 아래 그림 1처럼 화면이 뜨면 성공이다.

Bean Test 결과[그림 1] Bean Test 결과

위의 @Autowired는 bean으로 등록된 클래스를 자동으로 주입해주는 spring의 annotation이다.


다음번엔 bean과 관련된 annotation에 관해서 알아봐야겠다.

'프로그래밍 > Web' 카테고리의 다른 글

DAO, DTO, Service  (4) 2018.01.28
Annotation과 Bean  (2) 2018.01.27
Spring MVC 맛보기  (0) 2018.01.21
IntelliJ로 Spring 프로젝트 생성  (0) 2018.01.21
Spring 특징  (0) 2018.01.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함