JAVA/Spring(Springboot)
-
spring security - Authentication, UserDetails, OAuth2User / 예시JAVA/Spring(Springboot) 2021. 8. 8. 20:47
Spring Security를 사용하여 로그인하는 경우에는 Session영역에 Authentication 정보를 저장해둔다. Authentication 은 컨트롤러 등에서 User에 대한 정보를 가져올 때 사용이 되는데, 사용자가 로그인 한 방식에 따라서 Authentication의 구현체가 달라진다. - UserDetails : 사용자가 일반적(id, pw입력)으로 로그인 한 경우 - OAuth2User : Auth 로그인 한 경우 (ex- 구글, 카카오 등) 그럼 컨트롤러에서 session에 담긴 사용자 정보를 들고 올때 로그인 방식에 상관없이 한 번에 가져올 수 있는 방법이 있을까? 답은 가능하다! 보통 SpringSecurity로 로그인을 구현할 때 UserDetails 를 먼저 구현하는 경우가 ..
-
git 에 있는 프로젝트 Intellij 에 clone 하기JAVA/Spring(Springboot) 2021. 8. 4. 23:02
Intellij에서 Github의 Spring Gradle Project import 하기 (daddyprogrammer.org) Intellij에서 Github의 Spring Gradle Project import 하기 Intellij에서 Github의 Spring Project를 로컬로 Clone 하여 프로젝트를 구성하는 방법에 대해 알아보겠습니다. 참고로 Gradle로 구성된 SpringBoot 기준입니다. Github 프로젝트 주소 복사 Github로 이동하여 clone daddyprogrammer.org 이클립스로 git clone 진행하다가 External Project and Library 를 못 가져와 하루종일 삽질하다가,,, IntelliJ 에 Clone 하니까 바로 되었다.... 어후 ..
-
[Spring] @RestController / @RequestBodyJAVA/Spring(Springboot) 2021. 8. 1. 18:40
@RestController 에 대해서 알아보자 @Controller 는 반환 값이 'String' 이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 렌더링된다 @RestController 는 반환값으로 뷰를 찾는 것이 아니라 HTTP 메시지 바디에 바로 입력한다. 따라서 실행 결과로 'String' 값을 받을 수 있다 @RequestBody 도 비슷한 역할을 수행한다 @Controller 를 사용하는 경우 return 값으로 String 을 받게 되면 자동적으로 ViewResolver 를 찾게 되는데 @RestController 같이 body 에 메세지를 뿌려주고 싶은 경우 @RequestBody 를 사용하면 된다 @ResponseBody @RequestMapping("/request-param-v2..
-
[Spring] HttpServletResponse 객체로 JSON 데이터 반환하기 / @ResponseBody 로 JSON 데이터 반환하기JAVA/Spring(Springboot) 2021. 7. 29. 13:42
@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json") public class ResponseJsonServlet extends HttpServlet { private ObjectMapper objectMapper = new ObjectMapper(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // content -type response.setContentType("application/json"); response.setCharacter..
-
[Spring] HttpServletResponse 객체로 HTML 코드 반환하기JAVA/Spring(Springboot) 2021. 7. 29. 13:34
@WebServlet(name = "responseHtmlServlet", urlPatterns = "/response-html") public class ResponseHtmlServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // content-type response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter writer = response.getWriter(); wr..
-
[Spring] HttpServlet JSON 데이터 객체형태로 받기 / @RequestBody 로 JSON 데이터 받기JAVA/Spring(Springboot) 2021. 7. 29. 12:44
Spring 에서 JSON 형태의 데이터를 바로 매핑해서 사용할 수 있는 방법은 두가지가 있다. 첫 번째는 Jackson 라이브러리인 'ObjectMapper' 를 사용하는 방법이고, 두 번째는 @RequestBody 를 사용해서 바로 객체를 받는 방법이다. 예시로 함께 살펴보자 우선 넘길 JSON 데이터는 아래와 같다 {"username": "hello", "age": 20} 이 username 과 age 를 담을 클래스를 생성해보자 @Getter @Setter public class HelloData { private String username; private int age; } 그리고 JSON 파라미터를 받을 Controller 를 생성해보자 @Controller public class Reque..
-
[Spring] 여러 빈 중 빈을 선택해서(동적으로 빈을 선택하여) 서비스를 수행하고 싶을 때JAVA/Spring(Springboot) 2021. 7. 24. 15:49
여러 개의 빈 중 선택해서 서비스를 수행하고 싶을 때는 어떻게 해야할까? 그렇다면 빈을 모두 스프링 컨테이너에 저장한 후에 스프링 빈 이름으로 가져와서 사용하면 된다 예제로 자세하게 살펴보자 아래와 같이 할인 정책이라는 인터페이스가 있다 RateDiscountPolicy 와 FixDiscountPolicy 는 이 할인 정책 인터페이스를 구현하고 있다 사용자 중 한명은 RateDiscountPolicy 정책을 사용하고 또 한명은 FixDiscountPolicy 을 사용해야한다면 어떻게 해야 할까? 스프링 빈을 등록하는 설정정보를 생성한다. @Configuration public class DiscountPolicyConfig { @Bean public DiscountPolicy rateDiscountPol..
-
[Spring] 롬복 라이브러리 / 설치 및 사용법JAVA/Spring(Springboot) 2021. 7. 23. 23:13
개발을 해보면 대부분이 다 불변이기 때문에 생성자에 final 키워드를 사용하게 된다 생성자 주입을 하게 되면 생성자도 만들어야 하고, 주입받은 값을 대입하는 코드도 만들어야하므로 코드를 작성하기가 귀찮아진다 -> '롬복'이라는 라이브러리를 사용하면 훨씬 간편해진다!! 롬복 라이브러리는 자바의 '애노테이션 프로세서' 기능을 이용해서 컴파일 시점에 코드를 자동으로 생성해준다 롬복 라이브러리는 Getter, Setter, 생성자를 자동으로 만들어준다!! 롬복 라이브러리 설치 롬복 라이브러리를 spring boot 를 생성할때 library 추가를 통해 사용할 수 있다 Spring Initializr 사이트에서 ADD DEPENDENCIES 를 클릭하고 Lombok 을 검색하여 추가한다 또는 이미 생성된 스프..