반응형
보통 개발환경과 서버 환경을 동일하게 사용하기 위해서는 절대 주소보다는 상대 주소를 활용하는 경우가 많습니다. (때로는 config파일에서 세팅을 고정해서 활용하는 방법도 있지만 이건 추후에 작성하도록 하겠습니다.)
만약 WEB-INF 내 config폴더에서 file.xml이라는 파일을 읽어들일 경우 다음과 같이 호출하게 되면 내부의 파일을 호출 가능합니다.
@Controller
public class BaseController {
@Inject
private ServletContext context;
...
public ModelAndView index(ModelMap model){
...
File file = new File(context.getRealPath("/WEB-INF/config/file.xml");
...
return new ModelAndView("front/index");
}
}
여기에서 Inject는 Java에서 지원하는 버전이고 방식에 따라 아래와 같이 @Autowired도 사용 가능합니다.
@Controller
public class BaseController {
@Autowired
private ServletContext context;
...
public ModelAndView index(ModelMap model){
...
File file = new File(context.getRealPath("/WEB-INF/config/file.xml");
...
return new ModelAndView("front/index");
}
}
이렇게 호출을 하게 되면 file에는 WEB-INF 내 config파일 내 file.xml을 불러들이는 게 가능합니다.
이런 방식을 최근에 사용하게 된 계기는 Firebase를 활용해 push서버를 개발 시 인증을 위해 json파일을 고정위치에서 불러들여야 하는 이유로 활용하고 있습니다.
@Inject
pirvate ServletContext servletContext;
public void sendFcm(String tokenId, String title, String content, String linkUrl) {
String jsonPath = servletContext.getRealPath("/WEB-INF/config/appname-****-firebase-adminsdk-***.json");
try {
// 본인의 json 파일 경로 입력
FileInputStream refreshToken = new FileInputStream(jsonPath);
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(refreshToken))
.setDatabaseUrl("https://appname.firebaseio.com")
.build();
...
}catch(Exception e){
...
}
}
위와 같이 고정위치에 json을 두고 push서버로서 인증을 해야 하는 경우 활용 가능합니다.
반응형
'개발 창고 > Web' 카테고리의 다른 글
[Javascript] Excel 다운로드 기능 구현하기 (4) | 2020.08.21 |
---|---|
[Spring] FCM Push서버 개발시 고려사항 (0) | 2020.08.20 |
[Javascript] 운영체제에 대한 정보를 위한 navigator (0) | 2020.08.14 |
[Javascript] 모바일과 윈도우 구분짓기, User-Agent (0) | 2020.08.13 |
[HTML] Form 자동 Submit 막기 (0) | 2020.08.12 |