[스프링] 스프링 EL 멀티 모듈 프로젝트에서의 사용

스프링 Expression Language(EL)은 주로 JSP와 XML에서 사용되지만, 스프링 애플리케이션 컨텍스트와 같은 다른 스프링 구성 요소에서도 사용할 수 있습니다. 다중 모듈 스프링 프로젝트에서 스프링 EL을 사용하는 방법을 살펴보겠습니다.

1. 의존성 추가

먼저, 모든 모듈의 build.gradle 파일에 다음 의존성을 추가합니다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'org.springframework.boot:spring-boot-devtools'
    implementation 'org.springframework.boot:spring-boot-configuration-processor'
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-mail'
    implementation 'org.springframework.boot:spring-boot-starter-aop'
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    implementation 'org.springframework.boot:spring-boot-starter-hateoas'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}

2. EL 사용

다음으로, 스프링 EL을 사용하여 프로젝트의 다른 모듈에서 데이터를 공유하거나 조작할 수 있습니다. 예를 들어, ModuleAModuleB 모듈 간에 데이터를 전달하고 조작할 때 스프링 EL을 사용할 수 있습니다.

ModuleA의 서비스 클래스에서 다음과 같이 값을 설정하고 이를 스프링 EL 표현식으로 전달할 수 있습니다.

@Component
public class MyService {
    private String myValue = "Hello from ModuleA";

    // getter and setter for myValue
}

이제 ModuleB의 컨트롤러에서 해당 값을 가져와 사용할 수 있습니다.

@Controller
public class MyController {
    @Autowired
    private MyService myService;

    @GetMapping("/")
    public String getIndex(Model model) {
        model.addAttribute("valueFromModuleA", myService.getMyValue());
        return "index";
    }
}

이제 index.html 템플릿에서 스프링 EL 표현식으로 ModuleA의 값을 사용할 수 있습니다.

<p th:text="${valueFromModuleA}"></p>

이렇게 함으로써, ModuleAModuleB 사이에서 스프링 EL을 사용하여 데이터를 교환할 수 있습니다.

이제 스프링 EL을 멀티 모듈 프로젝트에서 사용하는 방법에 대해 알아보았습니다. 이를 통해 다양한 모듈 간에 데이터를 교환하고 조작하는 데 유용하게 활용할 수 있습니다.

필요한 경우 스프링 공식 문서를 참조하십시오.