본문 바로가기

spring7

[Spring Boot] Resource 추상화 백기선님의 스프링 핵심 기술 강좌를 들으면서 path에 대한 개념이 헷갈려서 정리하기로 했습니다. Resource에 대해서 살펴보겠습니다. 1. Resource 추상화 스프링에서 java.net.URL을 추상화 한 것이 Resource 인터페이스입니다. 인터페이스를 열어보면 주요 메소드를 볼 수 있습니다. 이렇게 추상화를 한 이유는 클래스패스 기준으로 리소스를 읽어오는 기능의 부재와 ServletContext를 기준으로 상대 경로를 읽어오는 기능 부재 등이 있습니다. public interface Resource extends InputStreamSource { boolean exists(); default boolean isReadable() { return this.exists(); } default.. 2020. 8. 27.
[Spring Boot] 의존성 주입 생성자 주입 평소에 코드를 짤 때 필드에 객체를 선언하고 @Autowired 애노테이션을 통해 의존성을 주입하는 방식을 사용해 왔습니다. 그런데 이 방식은 공식 사이트에서도 추천하지 않습니다. 그 이유를 정리해보겠습니다. 의존성 주입의 종류는 Constructor, Setter, Field 타입이 있습니다. 1. 의존성 주입 다음 코드는 의존성을 Constructor Injection(생성자 주입 방식)으로 주입해주는 코드입니다. public Class ItemService{ private final ItemDao itemDao; private final ItemPriceDao itemPriceDao; @Autowired public ItemService(ItemDao itemDao, ItemPriceDao item.. 2020. 5. 3.
[Spring Framework] @RequestBody, @ResponseBody json으로 spring 서버에 데이터를 보내거나 자바 객체를 HTTP 응답 몸체로 전송할 경우 자주 사용하는 어노테이션 입니다. 1. @RequestBody º HTTP 요청 몸체를 자바 객체로 전달 받음 º HTTP 요청의 body 내용을 자바 객체로 매핑하는 역할 @RequestMapping(value="test/test", method = RequestMethod.POST) public testDto login(@RequestBody Test testVO) { Test test = test.login(testVO); return test; } 2. @ResponseBody º 자바 객체를 HTTP 응답 body로 전송 º 자바 객체를 HTTP 요청의 body 내용으로 매핑 @RequestMappi.. 2019. 11. 12.
[Spring Framework] JSON 데이터 깨짐 현상 스프링에서 Request Mapping이 될때 한글이 깨져서 반환되는 경우가 있습니다. 아래 코드와 같이 @ResponseBody 에너테이션을 통하여 개발을 할때 발생하는 현상이 있습니다. 이 해결방법은 스프링 3.2 버전이상에서 사용하면 됩니다. 상단에 produces = "application/json; charset=utf8"을 지정하면 한글깨짐 현상을 해결할 수 있습니다. @RequestMapping(value = "/getNickname", produces = "application/json; charset=utf8", method = RequestMethod.GET) public @ResponseBody String getNickname() throws Exception{ String nick.. 2019. 8. 31.
[Spring Framework] Jackson 라이브러리 1. Jackson 라이브러리란? Jackson 라이브러리는 json 데이터 구조를 처리해주는 라이브러리입니다. json으로 표현된 데이터 구조를 살펴보겠습니다. 또한 Json 뿐만 아니라 XML/YAML/CSV 등 다양한 형식의 데이터를 지원합니다. 또한 스트림 방식이므로 속도가 빠르며 유연하고, annotation 방식으로 메타 데이터를 기술할 수 있으며 JSON의 약점중 하나인 문서화와 데이터 validation 문제를 해결할 수 있습니다. { "name":"HOON", "age": 28, "job": "programmer", } 자바로 JSON 객체를 만들어 보겠습니다. JSONObject jsonObj = new JSONObject(); jsonObj.put("name", person.getNa.. 2019. 8. 13.
[SpringFramework] 이클립스 스프링 Hello World 이번 포스팅에서는 이클립스를 이용하여 웹에 Hello World 텍스트를 출력해보겠습니다. 1. 스프링 프로젝트 생성 우선 스프링 프로젝트를 생성하겠습니다. 실무에서 주로 사용하는 Spring Legacy Project(Spring Project)를 선택하겠습니다. File -> new -> spring legacy project 2. 프로젝트 설정 Spring MVC Project를 클릭하고 프로젝트의 이름을 지정합시다. 이름은 마음대로 정하시면 됩니다. 그리고 Next 버튼을 누르고 패키지의 이름을 정해주고 Finish 버튼을 클릭합시다. * Finish를 누르면 maven이 필요한 라이브러리들을 받아옵니다. 이때 maven이 다운로드한 라이브러리들은 .m2라는 폴더에 저장됩니다. 숨김파일로 되어있을.. 2019. 6. 30.