728x90
반응형
스프링 프레임워크에서 모바일 장치를 인식하는 방법은 여러가지가 있겠지만 그 중 스프링 모바일을 가져와서 코드 몇줄만으로 장치를 인식하는 방법을 소개하려고 한다.
현재 기준으로 스프링 모바일은 2.0.0.M3가 안정적인 배포 버전이다. 메이븐으로 스프링 모바일을 프로젝트에 추가하는 방법은 아래와 같다.
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
메이븐 저장소를 위의 코드처럼 추가한다.
<dependencies>
<dependency>
<groupId>org.springframework.mobile</groupId>
<artifactId>spring-mobile-device</artifactId>
<version>2.0.0.M3</version>
</dependency>
</dependencies>
그리고 스프링 모바일 라이브러리를 위의 코드처럼 추가한다.
<beans:beans>
<beans:bean class="org.springframework.mobile.device.DeviceResolverHandlerInterceptor" />
</beans:beans>
그 후 스프링 모바일 인터셉터를 위의 코드처럼 서블릿 설정파일에 추가한다.
<filter>
<filter-name>deviceResolverRequestFilter</filter-name>
<filter-class>org.springframework.mobile.device.DeviceResolverRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>deviceResolverRequestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
그 후 HTTP 요청이 있을 때 마다 스프링 모바일 필터를 거치도록 위의 코드를 추가한다. 여기까지하면 스프링 모바일을 프로젝트에 추가하는 것을 완료한 것이다.
@RequestMapping(value={"/"}, method=RequestMethod.GET)
public void index(HttpServletRequest request){
Device device = DeviceUtils.getCurrentDevice(request);
if (device.isMobile()) {
System.out.println("모바일 장치입니다.");
} else if (device.isTablet()) {
System.out.println("태블릿 장치입니다.");
} else {
System.out.println("PC입니다.");
}
}
스프링 모바일이 잘 작동하는지를 확인하기 위해 위의 코드를 컨트롤러에 입력해본다. HTTP Request 안에 들어 있는 사용자 브라우저 정보를 읽어서 장치를 구별하는 것을 직접 구현하는 것보다는 라이브러리를 가져와서 쓰는 것을 추천한다.
참고자료
[1] Overview of Spring Mobile, Spring.io.
[2] 스프링 모바일이란?, Hun, Hun's Story, 2017-02-12.
728x90
반응형
'[WEB] Back-End Framework & Library > 스프링 프레임워크(Spring Framework)' 카테고리의 다른 글
[스프링] DataSource 스프링 빈을 자바 코드로 생성하기 (0) | 2022.11.23 |
---|---|
이클립스에서 'Project Facets'를 강제로 지정하는 방법 (0) | 2022.08.11 |
스프링(Spring) 프로젝트에서 메이븐(Maven)의 생명주기(lifecyle) 관련 문제가 발생할 때 (0) | 2022.08.09 |
스프링 프레임워크에서 트랜잭션을 설정할 때 주의해야할 것 (0) | 2020.09.07 |
스프링 시큐리티를 쓸 때 한글 관련 인코딩으로 주의해야할 점 (0) | 2020.09.06 |
댓글