Spring

[Spring]Java Configuration

dev-hahm 2023. 12. 14. 22:19

 

나는 legacy에 xml기반 configuration 보다는 java configuration을 선호하는 편이다.

 

이유는 xml 보다 java소스로 보는게 좋으니까 ㅎㅎㅎㅎ

 

@Configuration 어노테이션을 class 상단에 선언해줌

@Configuration
public class CommonConfiguration {

}

 

그리고 이러한 Configuration을 스캔해서 실행하는 일종의 RootConfiguration이 있어야한다.

@Configuration
@ComponentScan(basePackages= {"패키지경로"})
public class RootConfiguration{
}

 

Configuration의 종류는 아래정도로 xml과 맵핑되지 않을까 싶다.

context-aspect.xml <-> AspectConfiguration.java
context-transaction.xml <-> TransactionConfiguration.java
context-datasource.xml <-> DataSourceConfiguration.java
context-mapper.xml <-> MapperConfiguration.java
context-common.xml <->CommonConfiguration.java
context-properties.xml <->PropertiesConfiguration.java
context-servlet.xml <-> ServletConfiguration.java

 

ServletConfiguration이 있어 web.xml을 삭제해도 되지만 그럼 pom.xml이 에러가  난다.

- pom.xml

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
</plugin>

위 구문을 추가해주면 해결될것이다. (굳이 이런설정을 pom.xml에 넣고 싶지 않으면 web.xml은 살려놔도 됩니다.)