1. xml를 사용하지 않고 mybatis-spring-boot-starter를 사용하여 연동해보겠습니다. https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start mybatis/spring-boot-starter MyBatis integration with Spring Boot. Contribute to mybatis/spring-boot-starter development by creating an account on GitHub. github.com 빠른 시작 방법을 알 수 있습니다. implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' runtimeOnly 'm..
1. 롬북 의존성을 받아 줍니다. 2. 윈도우 기준 File - Settings 로 이동하여 plugins를 검색 해줍니다. 3. lombok을 검색하여 플러그인을 설치 하고 재부팅 해줍니다. 4. Annotation Processors를 검색해줍니다. Enable annotation processing 를 체크 해줍니다.
Member를 생성하는 MemberService 가 있고 이를 구현하는 구현체 MemberServiceImpl 이 있습니다. Member를 DB에 저장하는 MemberRepository가 있고 이를 구현하는 구현체 MemberRepositoryImpl 이 있습니다. 이 때, MemberService는 MemberRepository를 의존하고 있습니다. MemberRepositoryImpl 를 사용하기 위해서는 이렇게 new로 생성하게 됩니다. 그런데 먄약, MemberRepositoryImpl 가 아니고, 다른 MemberRepositoryImpl2 를 사용하게 된다고 합시다. 그러면 우린 MemberServiceImpl에 있는 코드를 이렇게 바꾸게 될 것입니다. 이것은 구현체에서 직접 수정하는 것으로 ..
사용자 웹 브라우저에 저장되는 데이터 요청이 발생 했을 때 웹 브라우저는 쿠키에 저장된 정보를 서버에 전달하게 된다. 만약 응답 결과로 쿠키 정보가 전달되면 웹 브라우저가 쿠키에 저장하게 된다. 쿠키는 사용자 브라우저에 저장되는 것이므로 브라우저가 전달 해 줄 때만 쿠키 정보를 사용 할 수 있다. Cookie 저장 서버측 코드로 쿠키에 데이터를 저장할 수 있는 방법은 없다. 브라우저로 보낼 응답 결과에 저장할 쿠키 정보를 담아 보내면 브라우저에 의해 쿠키가 저장된다. Spring MVC에서 쿠키 저장은 Servlet/JSP에서 사용하는 방법으로 처리한다. Cookie 읽어오기 쿠키 정보는 브라우저가 요청을 발생 시켰을 때 요청 정보에 같이 담아서 서버로 전달해 준다. Servlet/JSP 에서는 쿠키 정..
Bean을 정의 할 때 application scope 로 정의하면 서버가 가동될 때 자동으로 주입된다. 주입된 Bean은 주입만 이루어지는 것이므로 application 영역에 저장되지는 않는다. 서버가 가동 될 때 자동 주입 되는 것이므로 @Lazy를 설정하지 않아도 된다. Application Scope java 방식은 @ApplicationScope 를 사용 xml 방식은 bean을 정의 할 때 scope="application"으로 설정 @Configuration public class RootAppContext{ @Bean //@Bean("application2") @ApplicationScope public MemberDTO member() { return new MemberDTO(); } ..
서버가 가동될 때부터 서버가 종료되는 시점까지의 범위를 Application Scope라고 부릅니다. Application Scope 동안 사용할 수 있는 메모리 영역이 만들어지며 ServletContext라는 클래스 타입의 객체로 관리됩니다. ServletContext에 저장된 데이터나 객체는 서버가 종료되기 전까지 서버는 웹브라우저에 관계 없이 동일한 메모리 공간을 사용하게 된다. ServletContext HttpServletRequest 객체로 부터 추출이 가능하다. Controller 에서 주입 받을 수 있다. public String test(HttpServletRequest request){ ServletContext application = request.getServletContext()..
Bean을 정의할 때 session scope로 정의하면 브라우저가 서버에 최초의 요청을 보낼 때 Bean 객체가 주입된다. 그 이후로는 다시는 주입되지 않는다. 한번 주입된 객체를 계속해서 사용하는 것이라고 보면 된다. 주입된 Bean은 주입만 이루어지는 것이므로 sesion 영역에 저장되지는 않는다. java 방식은 @SessionScope xml은 scope="session" config 패키지를 생성하고 RootAppContext 클래스를 만든다. 모든 빈 주입은 여기서 이루어지게 된다. @Configuration public class RootAppContext{ @Bean @Session //빈이 주입되는 시기가 세션 요청이 발생했을 때 public MemberDTO member() { ret..
Session 브라우저가 최초로 서버에 요청을 하게 되면 브라우저당 하나씩 메모리 공간을 서버에게 할당하게 된다. 이 메모리 영역은 브라우저당 하나씩 지정되며 요청이 새롭게 발생하더라도 같은 메모리 공간을 사용하게 된다. 이러한 공간을 session이라고 부른다. 이 영역은 브라우저를 종료 할 때 까지 서버에서 사용할 수 있다. SessionScope 브라우저가 최초의 요청을 발생 시키고 브라우저를 닫을 때 까지를 SessionsScope라고 부른다. session 영역에 저장되어 있는 데이터나 객체를 자유롭게 사용 할 수 있다. public String test(HttpServletRequest request){ HttpSession session = request.getSession(); sessio..