SpringBoot Part3 (5) : AutoConfiguration
스프링부트 웹 어플리케이션
WAS로 배포하는 작업이 귀찮고 힘들기 때문에 SptingBoot가 자동화 되게 기능을 제공해준다.
SpringBootApplication를 실행하는 것으로 간단히 서버를 배포할 수 있다.
@SpringBootApplication
@ComponentScan(basePackages = "org.prgrms.kdt.customer")
public class KdtApplication {
public static void main(String[] args) {
SpringApplication.run(KdtApplication.class, args);
}
}
Configuration에서 해줬던 설정들을 환경변수 yaml파일을 통해 간단하게 등록 가능하다.
기존
// datasource 등록
@Bean
public DataSource dataSource() {
HikariDataSource dataSource = DataSourceBuilder.create()
.url("jdbc:mysql://localhost/order_mgmt")
.username(id)
.password(pw)
.type(HikariDataSource.class) // datasource 만들 구현체 타입 지정
.build();
return dataSource;
}
// Resolver 설정을 통한 이름 매핑
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
var springResourceTemplateResolver = new SpringResourceTemplateResolver();
springResourceTemplateResolver.setApplicationContext(applicationContext);
springResourceTemplateResolver.setPrefix("/WEB-INF/");
springResourceTemplateResolver.setSuffix(".html");
var springTemplateEngine = new SpringTemplateEngine();
springTemplateEngine.setTemplateResolver(springResourceTemplateResolver);
var thymeleafViewResolver = new ThymeleafViewResolver();
thymeleafViewResolver.setTemplateEngine(springTemplateEngine);
thymeleafViewResolver.setOrder(1);
thymeleafViewResolver.setViewNames(new String[]{"views/*"});
registry.viewResolver(thymeleafViewResolver);
}
spring boot
spring:
datasource:
url: jdbc:mysql://localhost/order_mgmt
username: root
password: dudwl0804!
thymeleaf:
view-names: "views/*"
prefix: "/WEB-INF/"
suffix: ".html"
servelt name을 설정하지 않으면 기본으로 배포. 잘 실행되는 것을 볼 수 있다.
servelt name 설정 & CORS 설정
server:
servlet:
context-path: /kdt_spring_order_war_exploded
—
@SpringBootApplication
@ComponentScan(basePackages = "org.prgrms.kdt.customer")
public class KdtApplication implements WebMvcConfigurer {
public static void main(String[] args) {
SpringApplication.run(KdtApplication.class, args);
}
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedMethods("GET","POST")
.allowedOrigins("*");
}
}
클라이언트와도 정상 통신
패키지 분류하기 (케이스바이케이스, 원하는대로 구성)
- controller, reposotory, domain(customer, voucjer,..), model(customer, email, ..) 로 나눠서 그룹핑한는 방식
- Domain 별로 나눠 그루핑하는 방식 → 파일이 많으면 그 안에 계층
AutoConfiguration
출처 - 해리 : SpringBoot Part3
'Back-end 데브코스 > week 03 - 05 TIL (Spring)' 카테고리의 다른 글
[TIL] 221117 - SpringBoot Part3 : 단일 페이지 웹 어플리케이션, CORS (0) | 2022.11.24 |
---|---|
[TIL] 221116 - SpringBoot Part3 : WebApplicationContext, REST API (0) | 2022.11.24 |
[TIL] 221115 - SpringBoot Part3 : Spring MVC - jsp, Thymeleaf (0) | 2022.11.22 |
[TIL] 221114 - SpringBoot Part3 : 웹 기술 Overview, Servelt (0) | 2022.11.22 |
[TIL] 221111 - SpringBoot Part2 : 트랜잭션과 AoP (1) | 2022.11.22 |
댓글