Environment

 

Application Context은 Bean Factory기능만 하는게 아니다.

Application Context의 기능은 여러가지가 있다.

 

그 중하나가 Environment이다.(환경설정)

 

Environment 프로파일(Profile) 

프로파일이란 Bean들의 묶음 특정 Bean들을 묶어 사용할때 유용하다.

 

@Profile로 ComponentScan으로 등록할 수 있고 

@Repository

@Profile("!prod")//ComponentScan에 등록하기

public class TestBookRepository implements BookRepository{



    @PostConstruct

    @Override

    public void run() {

        System.out.println("TestBookRepository 생성");

    }

}

 

@Configuration을 통해 Class형식으로 등록할 수있다 

//profile정하고 class로 등록하는방법

@Configuration

@Profile("test")//test profile일때만 사용

public class TestConfiguration {



    @Bean

    public BookRepository bookRepository(){

        return new TestBookRepository();

    }

}

또 특정 profile만 실행하는 것이 아닌 특정 프로파일이 아닐때도 사용가능하다. !not 사용

prod Profile이 아닐때 예제코드

@Repository
@Profile("!prod")//ComponentScan에 등록하기
public class TestBookRepository implements BookRepository{

    @PostConstruct
    @Override
    public void run() {
        System.out.println("TestBookRepository 생성");
    }
}

 

environment를 통해 properties 사용하기

Configuraion에 VMoption을 등록하거나

resources 경로 아래 Properties 파일을 생성하고

스프링시작부분에 @PropertySource("classpath:./App.Properties”)를 등록하고

꺼내올 수 있다.

@SpringBootApplication

@PropertySource("classpath:./App.Properties")

public class EnvironApplication {



    public static void main(String[] args) {

        SpringApplication.run(EnvironApplication.class, args);

    }

}

 

 

bean,properties설정이란?


Bean의존관계 설정방법

Property값 설정방법

Property파일을 이용한 설정


Bean의존관계 설정방법


Setter Injection

- Setter 메서드를 통해 의존관계가 있는 Bean을 주입하려면 <property>태그사용한다.

- ref는 객체 Bean이름을 통해 주입할 Bean을찾는다.

- value는 단순값이다.


ex)

class

bean.xml


Constructor Injection

- Constructor를 통해 의존관계가 있는 Bean을 주입하려면<constructor-arg>태그를사용한다.

- Constructor 주입방식은 생성자의 파라미터를 이용하기 때문에 한번에 여러개의 객체를 주입할 수 있다.<------------------Setter와차이점


ex)

class


bean.xml

index경우

name경우



Property설정방법




프로퍼티 파일을 이용할 설정방법

- 자주변경되는정보를 사용할때 사용한다.(Ex:DB정보)

- properties파일로 분리하는 깔끔하다.

- key=value로 구성된다.



프로퍼티파일생성


bean.xml




+ Recent posts