반응형

Spring Boot에서 JS(Javascript) 사용?

자바에서 제공하는 API인 Java Scripting API를 통해서, 자바에서 자바스크립트 함수 호출이 가능하다.

js 파일 및 설정

js를 사용하기 위해선, 우선 해당 스크립트가 적용된 js파일을 적용할 필요가 있다.
resources 하단에 사용할 js 파일을 정리하여 resources/js/aes.js 와 비슷한 형태로 적용하면 된다.
해당 부분은 css, image 파일 또한 동일하게 적용 가능하다.

 

application.yml 설정

local.yml
prod.yml

js 파일을 설치하여, 적용하였으면 해당 부분의 경로를 불러오기 위해 설정을 진행하여야 하는데

local, dev, prod 각 설정에 맞게 절대 경로를 지정하여 사용하면 된다. (build 이후 경로의 차이가 존재)

 

Java Scripting API 사용

JavaScripting API의 ScriptEngine을 통해 스크립트 엔진을 호출하여 aes.js 자바 스크립트 파일을 불러오는 소스이다.
간략하게 decrypt 함수를 호출하는 방식으로, JavaScripting의 인터페이스를 활용하여 작업이 가능하다.

// 스크립트 엔진 호출
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("JavaScript");

// js 파일 호출
URL resourceUrl = this.getClass().getClassLoader().getResource("js/aes.js");
String fileLocation = resourceUrl.getFile();

// evel 메소드를 사용하여 컴파일
try {
	se.eval(new FileReader(fileLocation));
} catch (FileNotFoundException | ScriptException e) {
	e.printStackTrace();
}

String aesKey = "test";
String ob = null;
// 자바스크립트의 함수를 실행하게 해주는 Invocable
Invocable inv = (Invocable) se;

// invokeFunction을 통한 특정 함수 호출
try {
	ob = (String) inv.invokeFunction("decrypt", input, aesKey, 256);
} catch (NoSuchMethodException | ScriptException e) {
	e.printStackTrace();
}

 

반응형

'개발새발 > Spring Boot' 카테고리의 다른 글

Lombok 설치 및 STS 연동  (0) 2021.05.22
Spring Boot 프로젝트 설정 방법  (0) 2021.05.19

+ Recent posts