본문 바로가기

Spring27

REST, RestController, ResponseEntity, AJAX # REST API 특정 URI를 통해 사용자가 원하는 정보를 제공하는 방식. REST방식으로 제공되는 외부연결 URI를 REST API. REST 방식의 서비스 제공이 가능한 것을 Restful 하다고 표현. @RestController @RestController = @Controller + @ResponseBody 클래스 상단에 @RestController 어노테이션을 선언하면 메소드마다 @ResponseBody를 붙여주지 않아도 된다. # 단순 문자열 리턴 1 2 3 4 @RequestMapping("/hello") public String sayHello(){ return "Hello World"; } cs # JSON 리턴 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .. 2019. 4. 11.
Spring - 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴(Singleton Pattern)싱글톤 패턴이란?기본전략 : 인스턴스가 사용될 때 똑같은 인스턴스를 만들어 내는 것이 아니라, 동일 인스턴스를 사용하게끔 하는 것.프로그램상에서 동일한 커넥션 객체를 만들거나, 하나만 사용되야하는 객체를 만들 때 매우 유용하다. 예제를 보자 Eager initializationpublic class SingletonEx { ​ //private static으로 선언 private static EagerInitialization instance = new EagerInitialization(); //생성자 private로 선언 private SingletonEx () { System.out.printlnt("call SingletonEx " + instance... 2019. 3. 22.
스프링 기본 개념 정리 스프링 기본 개념 정리SpringFramework는 웹 프레임 워크가 아니다.그렇다면?Java 기반의 프레임워크로 여러 모듈로 구성되어 있는데, 이중 웹 어플리케이션을 만들려고 등장한 것이 SpringMVC 모듈이다.SpringMVC 사용할 때 Servlet Container와 Spring Container라는 용어를 자주 볼 수 있다. Servlet ContainerServlet 저장소라고 보면 된다.Java로 웹을 개발하기 위해 여러 Servlet 들이 필요하게 되는데, Servlet들의 생명주기, 멀티쓰레드 지원 등을 해주는 것이 Servlet Container다대표적으로 Tomcat이 해당된다.Spring MVC 역시 Servlet Container가 관리하고 있는 Servlet이다.만약 Serv.. 2019. 3. 15.
Spring의 DI Spring 의 DI업무를 시작하기 위해 소스코드 분석을 하기 위해 소스를 받았지만 어디서부터 봐야하는지를 모르겠다. 스프링을 잘 모르기 때문에 그런 것 같아 스프링 공부에 대한 필요성을 느꼈다.또한 스프링을 사용하지만 정작 스프링을 왜 사용하는지, 어떤 점이 좋은지에 대해 제대로 알고자 정리를 시작한다.DI 란? (Dependency Injection) - 의존성 주입객체간의 의존성을 자신이 아닌 외부에서 주입public class HelloApp{ public static void main(String[] args){ MessageBeanEng bean = new MessageBeanEng(); bean.sayHello("spring"); } }public class MessageBeanEng{ pu.. 2019. 3. 15.
@Data, @EqualsAndHashCode 어노테이션 Spring @Data , @EqualsAndHashCode이번에 확인해볼 부분은 Lombok 라이브러리에서 제공하는 어노테이션이다. @Data, @EqualsAndHashCode를 보기전에우선, @Getter 와 @Setter는 각각 접근자와 설정자 메소드를 작성해주는 Lombok 어노테이션으로 유명하다.또한 생성자를 자동 생성해주는 Lombok 어노테이션에는 @NorgsConstructor : 파라미터가 없는 기본 생성자 생성@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만들어 준다.@RequiredArgsConstructor : final이나 @NonNull 인 필드 값만 파라미터로 받는 생성자를 만들어 준다. toString() 메소드를 작성하는 일도 @ToStr.. 2019. 3. 14.
@Qualifier 어노테이션 사용법 스프링에서는 @Autowired를 사용해 의존성을 주입한다. bean을 설정할 때 를 사용함으로써 굳이 bean 태그 안에 나 태그를 추가하지 않아도 스프링의 @Autowired 어노테이션이 적용된 생성자, 필드, 메소드에 대해 의존 자동 주입을 처리한다. 하지만, 만약 동일한 타입을 가진 bean 객체가 두개가 있다면 어떻게 될까? 스프링이 어떤 빈을 주입해야 할 지 알 수 없어서 스프링 컨테이너를 초기화하는 과정에서 Exception을 발생시킨다. @Autowired의 주입 대상이 한 개여야 하는데 실제로는 두 개 이상의 빈이 존재해 주입할 때 사용할 객체를 선택할 수 없기 때문이다. 단, @Autowired가 적용된 필드나 설정 메서드의 property 이름과 같은 이름을 가진 빈 객체가 존재할 경.. 2019. 3. 14.