JAVA
-
[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 을 검색하여 추가한다 또는 이미 생성된 스프..
-
[Spring] 빈이 충돌나는 경우JAVA/Spring(Springboot) 2021. 7. 21. 20:28
스프링 컨테이너에서 빈이 충돌나는 경우는 크게 두가지가 있다 첫번째로 자동 vs 자동 인 경우 두번째로 자동 vs 수동 인 경우 자동 vs 자동인 경우는 컴파일 과정에서 에러가 난다 에러 또한 친절하게 어느 클래스에서 중복이 되어 충돌이 나는지 적혀있다 두번째로 자동 vs 수동인 경우는 수동으로 등록하는 빈으로 overriding 되어 등록된다 Overriding bean definition for bean 'memoryMemberRepository' with a different definition 위와 같이 특정 빈이 overriding 된 것을 확인할 수 있다 하지만 스프링 부트에서는 overriding 이 적용이 안 되고 오류가 난다!
-
[Spring] Bean을 생성하는 방법JAVA/Spring(Springboot) 2021. 7. 18. 15:00
Bean을 생성하는 방법은 크게 두가지가 있다 첫번째는 AppConfig.class 를 사용하여 Factory Bean을 통해서 생성하는 방식이 있다 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 두번째는 XML을 사용하여 직접적으로 빈을 생성하는 방식이 있다 ApplicationContext ac = new GenericXmlApplicationContext("appConfig.xml");
-
[Spring] Bean 객체 가져오기JAVA/Spring(Springboot) 2021. 7. 17. 16:09
Bean 객체를 가져올때 두가지 방법이 있다 1. Bean 타입으로 가져오기 2. Bean 이름으로 가져오기 우선 ApplicationContext 객체를 생성하자 ApplicationContext ac = AnnotationConfigApplicationContext(AppConfig.class); 위에서 사용하는 AppConfig 파일은 @Bean을 등록한 Configuration 파일이다 @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRep..