이미지 또는 파일을 리턴하고 싶을 때가 있다. 예를 들어 사용자가 http://도메인/api/images/1 같은 경로로 요청을 보냈을 때 이미지를 리턴하도록 만들어보자.@ResponseBody@ResponseBody 어노테이션을 사용함으로써 HTTP response body에 데이터를 그대로 담아서 전송할 수 있다. 이 어노테이션이 없다면 Spring은 View resolver를 통해 view 파일을 찾으려 할 것이다.직렬화된(byte[]) 이미지나 파일을 리턴하기 위해 @ResponseBody 어노테이션을 Request Mapping 할 메소드에 붙이도록 하자. @GetMapping("/get-text") public @ResponseBody String getText() { return "Hello..
Maven으로 스프링 프로젝트를 개발하다가 src/main/webapp 경로에 보관된 이미지를 제공하는 API를 만들일이 있어서 경로를 얻는 방법을 적는다. Controller에서 HttpServletRequest 객체를 파라미터로 받은 뒤, request.getServletContext().getRealPath(""); 를 이용하면된다. 위 호출로 나온 경로는 src/main/webapp 까지의 경로로, 만약 resources/image/img123.png 식으로 보관했다면, @RestController public class ImageController { @Autowired ImageService imageService; @GetMapping(value = "/image/{imageName}.{ex..
JDK 8부터 stream을 이용하여 데이터를 쉽게 변환, 수집할 수 있다. 반복문을 돌려서 필요한 데이터를 가져오는 것보다 훨씬 직관적이고 코드도 짧다. 람다식을 사용하여 함수지향적이고, C#의 linq와 유사한 부분이 많다. ArrayList, HashMap 같은 컬렉션 클래스들은 모두 stream() 메서드를 이용해 스트림을 생성할 수 있다. 그 외에 배열같은 경우 java.util.Stream의 Stream.of() 함수를 이용해 스트림을 생성할 수 있다. 이런 stream을 이용해 아래와 같이 필요한 데이터를 아주 간단하게 뽑아낼 수 있다. public class DTO { private int type; private String data; public int getType() { return..
Window -> Preferences에 들어간다. 1. General -> Content Types -> Java Class File의 Default Encoding을 UTF-8로 설정하고 Update 버튼을 누른다. 2. General -> Workspace에서 Test file encoding을 Other: UTF-8로 설정하고 적용한다. 3. General -> Editors -> Spelling에서 Encoding을 Default (UTF-8)로 설정하고 적용한다. 4. Web -> CSS Files, HTML Files, JSP Files 세 개 항목의 Encoding을 ISO 10646/Unicode(UTF-8)로 설정하고 적용한다. 5. XML -> XML Files에서 Encoding을 ..
Eclipse에서 JDBC를 이용해 MySQL을 사용하는데 한글때문에 애를 먹어서 정리해놓는다. C:\ProgramData\MySQL\MySQL Server 5.7 폴더에 간다. (버전에 따라 폴더명이 다를 수 있음)경로가 Program Files 폴더가 아닌 ProgramData임을 주의하자. my.ini 파일을 열고 아래의 내용을 맨 밑에 추가시키고 저장한다. [client]default-character-set=utf8 [mysqld]character-set-client-handshake = FALSEinit_connect="SET collation_connection = utf8_general_ci"init_connect="SET NAMES utf8"character-set-server = utf..
MVC 패턴에는 두가지 종류가 있다. MVC1과 MVC2인데 아래 그림과 같다. MVC1은 JSP가 요청을 받아서 EJB의 JavaBean으로 DB와 통신하여 JSP에 적절한 값을 넣은 후 응답을 브라우저에 반환하는 형식이다.MVC2는 이보다 발전하여 JSP가 요청을 받지 않고 Servlet이 대신 요청을 받아서 DB와 통신하여 JSP에 값을 넣고 그것을 반환한다. Servlet은 서버에 매칭되는 URL마다 하나 씩 존재하며 init -> service(요청 마다 반복) -> destory의 생명주기를 가진다. Servlet은 WAS의 Servlet Container에 존재하며 사용자가 요청하면 해당되는 URL(web.xml 등으로 설정)에 매핑되는 Servlet의 함수(service -> doGet, ..
Spring JDBC를 사용하지 않고 DB를 사용하기 위해선, Driver를 로드하고 connection을 맺고 statement 준비를 하고 query를 실행하기까지 여러 코드를 적어야했다. 이런 저수준의 작업들은 Spring JDBC를 이용하여 간단하게 처리할 수 있다.Spring JDBC 패키지org.springframework.jdbc.coreorg.springframework.jdbc.datasourceorg.springframework.jdbc.objectorg.springframework.jdbc.support 위와 같은 패키지를 사용하고, 이 중 core에는 JDBC Template이라는 중요한 클래스가 있다.JDBC Templateorg.springframework.jdbc.core에서 ..
BeanBean은 Spring Bean Container에 존재하는 객체를 말한다. Bean Container는 의존성 주입을 통해 Bean 객체를 사용할 수 있도록 해준다. Bean은 보통 싱글턴으로 존재한다.XML ConfigurationJava 코드를 이용한 Context 설정이 나오기 전 사용하던 방법이다. applicationContext.xml이라는 파일을 src/main/resources 폴더에 추가시킨 후 bean을 등록한다. 아래 코드처럼 작성할 수 있다. beans 태그 아래에 bean 태그가 여러개 있는 것을 볼 수 있다. bean 태그의 id가 bean의 이름이 되고 class에 어떤 클래스를 bean으로 만들지 패키지명을 포함하여 적으면 된다. bean 태그 아래에 property..
- Total
- Today
- Yesterday
- @Bean
- chunk
- Check point within polygon
- @Component
- Bean
- npm
- Tasklet
- mybatis
- JavaScript
- 클로저
- thymeleaf 변수 인식
- MySQL
- nodejs
- Closure
- Express
- unity
- @Autowired
- @Qualifier
- thymeleaf cannot resolve
- Barycentric coordinates
- Bin
- spring batch
- Linux
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |