일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 정적팩토리메서드
- 기능적 요구사항
- ioc컨테이너
- open-session-in-view
- fetch join
- kotlin ::
- 토비의 스프링
- 수정자주입
- 도커 이미지 빌드
- kotlin 리팩터링
- spring formatter
- 스프링시큐리티
- 생성자주입
- Spring
- java predicate
- 스프링di
- 스프링 시큐리티 설정
- method refetence
- 동적파라미터
- IOC
- jpa lazy
- 스프링부트 도커
- 자바 필터
- 스프링
- 그래프큐엘
- 비기능적 요구사항
- jpa no session
- 소프트웨어의 품격
- Atomicity
- 스프링 포매터
Archives
- Today
- Total
공부기록
java config으로 하는 Spring 셋팅. 본문
반응형
설정
pom.xml
.....
<build>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
.....
- 먼저 web.xml 파일이 없어서 오류가 나지않게
failOnMissingWebXml
의 값을 false로 줍니다.
RootConfig.java
@Configuration
@ComponentScan(basePackages = "com.petcare.web",
excludeFilters = @ComponentScan.Filter({
Controller.class,
RestController.class
}))
@PropertySource(value = "classpath:application.properties")
@MapperScan(basePackages = "com.petcare.web.mapper")
@EnableTransactionManagement
public class RootConfig { ... }
- RootConfig은 xml 설정의 applicationContext.xml 역할을 합니다.
- @ComponentScan 으로 basePackages에 지정된 패키지 이하를 검색해 @Component 붙은 빈들을 등록시켜줍니다. 계층형 구조로 만들기 위해, @Controller,@RestController 어노테이션이 붙은 빈들은 excludeFilters를 이용해 빈등록에서 제외시켜줍니다.
- @PropertySource로는 디비정보 등과 같은 민감한 정보를 보호하기 위해, 따로 properties를 만들고, @Value로 주입시켜줍니다.
- @MapperScan은 마이바티스의 Mapper인터페이스를 검색하기 위해 설정합니다.
- @EnableTransactionManagement는 xml 기반의 설정에서 <tx:annotation-driven> 과 같은 역할을 합니다.
ServletConfig.java
@EnableWebMvc
@ComponentScan(basePackages = "com.petcare.web.controller")
public class ServletConfig implements WebMvcConfigurer {...}
- xml설정에서 보통 servlet-context.xml로 쓰는 스프링컨텍스트의 역할과 같습니다.
- @EnableWebMvc를 사용하여 WebMvcConfigurationSupport 의 도움을 받습니다. 해당 클래스가 해주는 일은 문서를 통해 살펴보세요.
https://docs.spring.io/spring/docs/5.1.6.RELEASE/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.html - @ComponentScan(...) 을 이용해 controller 패키지 안에 있는 빈들을 등록시켜줍니다.
- 따라서 @Controller 빈들은 반드시 controller 패키지 안에 집어넣어야합니다. 그렇지않으면 빈으로 등록되지 않습니다.
- implements WebMvcConfigurer 를 이용해 @EbableWebMvc를 사용하여 자동구성된 스프링MVC 구성에 다른 설정을 추가할 수 있게끔 해줍니다.
WebConfig.xml
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {...}
- web.xml 과 같은 역할을 합니다.
반응형
'Spring' 카테고리의 다른 글
ResourceLoader (2) | 2020.01.22 |
---|---|
SPRING VALIDATOR (0) | 2019.11.13 |
스프링 기본 설정하는 법 feat. Spring5, MyBatis, Eclipse (0) | 2019.11.03 |
[Spring]비즈니스 인터페이스에서 의존성을 정의하지 말라. (0) | 2019.10.26 |
@PathVariable (0) | 2019.10.20 |