전체 글 282

[Spring Boot] datasource bean not working

Config class에서 아래처럼 빈 설정을 하고 사용하다.@Bean @ConfigurationProperties("spring.datasource") public DataSource dataSource() { return DataSourceBuilder.create().build(); } dbcp를 변경하고 application.properties에 설정하였으나 jdbc url를 제대로 읽어들이지 못함 propertie를 자동으로 바인딩 해주고 datasource가 만들어질거라 예상했지만, 위 설정으로는 자동바인딩이 되지 않는다.(수동설정이 우선되므로 자동설정을 못하게 할뿐) 자동바인딩이 안되는 이유는 Builder에 setter가 없기 때문인것 같다.(자세한건 @ConfigurationPropert..

dev/web 2017.08.17

spring @ModelAttribute and @RequestBody

컨트롤러 request mapping시 인자로 객체를 받을 수 있는데 어노테이션이 헷갈린다. @ModelAttribute는 단순히 요청으로 들어온 parameter와 객체 빈의 멤버변수와 bind한다. 없으면 null@ModelAttribute 요청으로 들어온 bind된 object를 Model에 Attribute로 추가시켜준다. View에서 사용할 수 있도록model.addAttribute의 호출을 편하게 도와주는 역활 이부분이 어째서 구글링으로 혼선을 야기했는지는 모르겠다.필자도 헷갈렸다.ㅠㅠ아직 많이 부족하다. @RequestBody는 HttpMessageConverter 구현체를 거쳐서 받는다. 특정 객체에 대한 컨버터를 지정해주지 않으면 Unsupported Media Type이라고 나올것이다...

dev/web 2017.08.13

SpringBoot @RequestBody 그리고 form

@RequestBody 어노테이션은 JSON이나 XML등을 인자로 받을 수 있게 해준다.인자로 변환하는 과정에서 HttpMessageConverter의 구현체가 필요하다.Jackson 라이브러리를 사용중이면 자동으로 등록된다. 태그를 사용한 값을 받을때에는 content type이 multipart/form-data 혹은 application/x-www-form-urlencoded일텐데이를 변환시켜주는 FormHttpMessageConverter가 있으며 MultiValueMap 형태로 받을 수 있다.이런경우엔 보통 객체로 받는것이 훨씬 편하다.(멤버변수 자동 매핑) multipart/form-data의 경우에는 FormHttpMessageConverter에서 분명 지원하지만, HttpMediaTypeN..

dev/web 2017.07.09