로컬 개발시 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
'웹개발 > 스프링부트' 카테고리의 다른 글
스프링부트 로그레벨 설정 (0) | 2021.03.30 |
---|---|
ResponseEntity에 header (httpOnly, secure, cookie ) 세팅하고 json 응답 리턴하기 (0) | 2021.03.18 |
Spring boot jwt 로그인 구현 (0) | 2021.03.15 |
스프링부트 서블릿 필터 Exception 핸들링 (2) | 2021.03.15 |
Springboot Exception Handling(스프링부트 exception 핸들링) (0) | 2021.03.10 |