본문 바로가기
웹개발/스프링부트

스프링부트 profile설정(front 및 api 서버 url 설정하기)

by 어컴띵 2021. 3. 18.

로컬 개발시 cors 설정을 localhost:3000으로 해놓았다가 운영에 적용하면 당연히 cors 오류가 난다. 그래서 url을 로컬 개발과 운영적용시에 나누어서 관리할 필요가 있다. 설정파일을 통해서 한번 적용해보자

 

먼저 application.yml 파일을 

 

1. application.yml 파일은 로컬개발과 운영으로 분리

2. application.yml 파일에 host url 설정

3. cors 설정

4. production profile 적용 실행

 

1. application.yml 파일은 로컬개발과 운영으로 분리

spring:
  profiles:
    active: local

---
spring:
  profiles: production

2. application.yml 파일에 host url 설정

spring:
  profiles:
    active: local
    
server:
  host:
    api: http://localhost:8080
    front: http://localhost:3000

---
spring:
  profiles: production

server:
  host:
    api: https://www.yourdomain:8443
    front: https://www.yourdomin.net

3. cors 설정

@Log
@SpringBootApplication
public class SpringbootSignTutorialApplication {

    @Value("${server.host.front}")
    private String frontHost;

    @Bean
    public WebMvcConfigurer corsConfigurer(){
        log.info("host:" + frontHost);
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedOrigins(frontHost)
                ;
            }
        };
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringbootSignTutorialApplication.class, args);
    }

}

 

4. 운영에 production profile 적용

로컬실행시에는 자동으로 profile이 local로 적용되며 운영에 jar 실행시 -Dspring.profiles.active 옵션의 값을 production으로 주면 production설정값으로 실행이 된다.

> java -jar -Dspring.profiles.active=production springboot-sign-tutorial-0.0.1-SNAPSHOT.jar