본문 바로가기

Spring25

[Spring] Environment - Property 이번 글에서는 ApplicationContext가 가지고 있는 기능들 중 Enviroment의 Property 기능이다. 여기서 말하는 Propery란, 애플리케이션에 등록되어 있는 여러가지 Key - Value 쌍으로 정리되어 있는 값을 Property로 접근할 수 있는 기능을 말한다. Property는 계층형으로 접근을 한다. 쉽게 말해 여러가지 형태로 Property 사용이 가능한데, 우선순위 별로 적용되는 것이라고 생각하면된다. Property는 OS 환경변수, VM 옵션, Servlet Context, Servlet Config 등에 들어갈 수있다. 1. VM options를 이용한 Property 사용 기본적으로 VM options에 프로퍼티를 적용하는 법에 대해 알아보자. 이전 글인 Envi.. 2020. 1. 7.
[Spring] Environment - Profile 이번 글에서는 ApplicationContext가 가지고 있는 기능 중 Enviroment의 Profile 이라는 기능에 대해 알아보도록하자. Profile이란, 간단하게 말하면 Bean들의 묶음이다. 메이븐에도 프로파일기능이 있고 스프링에 있는 프로파일은 환경을 나타낸다. 실제로 실무에서는 실서버, 테스트서버, 개발서버등 서버마다 환경이 다른 경우가 있는데, 각 서버에 Bean의 필요유무를 따져서 Profile 기능을 사용하면 되는 것이다. 어떤 Bean이 필요하고 어떤 Bean이 필요없는지를 상황에 맞게 적용할 수 있는 기능이 바로 Profile이다. ApplicationContext.class // 코드중략 public interface ApplicationContext extends Environ.. 2019. 12. 29.
[Spring] Bean의 스코프 이번 글에서는 Bean의 스코프에 대해서 알아보도록 하자. Bean의 스코프란, Bean이 생성되는 방식을 가르키는데 한번 생성한 후 계속 사용할지, 필요할때마다 생성해서 사용할지를 말하는 것이다. 기본적으로 Spring에서 Bean의 스코프는 Singleton이 기본 설정 값이다. 추가설정을 하지 않고 Bean으로 등록되면 Singleton 형태로 등록이된다. 1. Singlton Scope - 한번만 생성해서 계속 재활용 하는 방식 실제로 추가적인 설정없이 @Autowired 만으로 Bean으로 등록된 객체의 주소 값이 동일한 확인하여 보자. 객체를 비교하기위해 필요한 클래스 2개와 두 클래스가 Bean으로 등록된 후에 사용할 수 있게 Runner 클래스를 만들도록 하자. Single.java pac.. 2019. 12. 29.
[SpringBoot] DataBase를 연동한 게시판 구현3 지난 시간에는 DataBase Developer Tool을 이용하여 미리 데이터를 넣어둔 상태에서 게시판 상세페이지를 보여주는 실습을 진행 하였다. 이번시간에는 게시판 추가, 수정의 기능을 추가해보도록 하자. 우선은, 기존에 게시판 게시글이 하나 밖에 없어서 시퀀스관리가 필요없었다. 하지만 만약 게시판 생성이 여러번 일어난다면, 각각의 게시판을 구분할 수 있도록 고유키(Primary key)를 관리해야한다. 고유키 관리는 DB에서 하기 때문에 기존에 생성해두었던 테이블의 컬럼을 수정하여 게시판의 고유키를 관리해보도록하자. 아래 글을 참고하여 board 테이블에 데이터가 insert되면, board_no 값이 자동증가할 수 있도록 컬럼을 수정하자. [PostgreSQL] Auto increment 하는 방.. 2019. 12. 22.
[Spring] @Component와 컴포넌트 스캔 이번 글에서는 @Component와 이 어노테이션이 어떻게 인식이 되며, 어떻게 사용되는지 알아보도록하자. 1. @ComponentScan의 범위 @Component 어노테이션을 명시한 클래스는 @ComponentScan의 내부적인 동작에 의해서 스캐닝 되고 Bean으로 등록된다. 스캐닝되는 범위는 @ComponentScan이 명시된 클래스가 위치한 디렉토리를 포함해서 그 하위 디렉토리들이다. 아래 그림에서는 DemoApplication 클래스가 @ComponentScan을 가지고 있기때문에 해당 클래스가 위치한 디렉토리인 com.example.demo 이하의 경로에 있는 범위를 스캔하는 것이다. SpringBoot에서는 main 메소드를 가지고 있는 클래스에 @SpringBootApplication 어.. 2019. 12. 17.
[Spring] @Autowired 및 Bean 라이프 사이클 Spring에서 의존성주입을 하기 위해 사용하는 어노테이션이 바로 @Autowired 이다. 기본적으로 필드에 명시할 수도 있고 set메소드의 파라미터로 주입하고 싶은 클래스를 넣고 해당 메소드에 명시할 수 도있다. BookService package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookService { @Autowired BookRepository bookRepository; // setter는 객체생성 이후에 호출하기 때문에 일단 BookService 객체가 생성될.. 2019. 12. 15.
[Spring] Spring Bean 설정 방법 - Java Config 이전 글에는 XML Config를 이용하여 Spring Bean 설정 하는 법을 진행하였다. 이 글에서는 Java Config 설정 방식에 대해 알아보려고 하는데, 기본적인 클래스가 필요 하기 때문에 혹시라도 이전 글인 XML Config를 이용한 Spring Bean 설정을 읽지 않았다면 참고하길 바란다. https://dbjh.tistory.com/21?category=743067 [Spring] Spring Bean 설정 방법 - XML Config Spring의 Bean 설정 방법을 알아보도록 하자. 예전에는 XML Config 방식을 사용하였지만 최근에 와서는 Java Config 방식을 사용한다. 각 설정 방식을 보고 Bean이 등록되는 방법을 알아보자. Bean 설정 실습을 위.. dbjh... 2019. 12. 11.
[Spring] Spring 기본 동작 순서도 2019. 12. 11.
[Spring] Spring Bean 설정 방법 - XML Config Spring의 Bean 설정 방법을 알아보도록 하자. 예전에는 XML Config 방식을 사용하였지만 최근에 와서는 Java Config 방식을 사용한다. 각 설정 방식을 보고 Bean이 등록되는 방법을 알아보자. Bean 설정 실습을 위해 폴더경로 및 BookService와 BookRepository 클래스를 생성하도록 하자. BookService package com.example.demo; import org.springframework.stereotype.Component; public class BookService { BookRepository bookRepository; public void setBookRepository(BookRepository bookRepository){ this.b.. 2019. 12. 10.