Spring Framework
-
필터와 인터셉터의 차이점Spring Framework 2022. 5. 22. 02:49
필터란? 필터는 J2EE 표준 스펙 기능으로 디스패처 서블릿에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가 작업을 처리할 수 있는 기능을 제공합니다. 인터셉터란? 인터셉터는 J2EE 표준 스펙 기능은 아니고 Spring이 제공하는 기술로써 디스패처 서브릿이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공합니다. 웹 컨텍스트에서 동작하는 필터와 달리 인터셉터는 스프링 컨텍스트에서 동작합니다. 실제로 Interceptor가 Controller로 요청을 하진 않지만 대략적으로 다음과 같은 처리 순서로 도식화만 했습니다. 필터와 인터셉터의 차이점 및 용도 관리되는 컨테이너가 다르다. 필터는 Dispatcher Servlet 호출 전, 인터셉터는 Disp..
-
스프링 부트 - 회원 관리 예제 실습 (순수 JDBC로 H2 데이터베이스 연동)Spring Framework 2022. 4. 24. 00:01
1. build.gradle에 jdbc와 h2 데이터베이스 의존성을 추가합니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-jdbc' //추가됨 runtimeOnly 'com.h2database:h2' //추가됨 testImplementation 'org.springframework.boot:spring-boot-starter-test' } 2. src/main/reso..
-
스프링 부트 - 회원 관리 예제 실습 (H2 데이터베이스 설치)Spring Framework 2022. 4. 16. 00:01
이전에 만든 Repository는 MemoryRepository이기 때문에 서버를 한번 재구동하면 데이터가 모두 사라지게 됩니다. MemoryRepository 대신에 DB 저장소를 사용하기 위해서 H2 데이터베이스를 설치해보겠습니다. 잠깐 MySql, Oracle을 사용하는 대신 H2 데이터 베이스를 사용하는이유? 용량이 적고 가벼워 교육용으로 좋고 웹에 admin 화면도 제공함 1. H2 Database 홈페이지에 접속합니다. https://h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, o..
-
스프링 부트 - 회원 관리 예제 실습 (웹 MVC 개발)Spring Framework 2022. 4. 11. 00:01
비즈니스 로직을 만들었으니 이제 화면을 구성할 차례입니다. 1. hello.hellospring.controller 패키지에 HomeController.java 파일을 생성합니다. package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } @Controller 어노테이션을 추가해서 스프링 컨테이너에 해당 클래스가 컨트롤러임을 ..
-
스프링 부트 - 회원 관리 예제 실습 (자바 코드로 직접 스프링 빈 등록하기)Spring Framework 2022. 4. 8. 00:01
이전 시간에는 컴포넌트 스캔을 통해 스프링 빈을 등록했습니다. @Service , @Repository, @Autowired 어노테이션을 활용하면 편리한데 왜 직접 스프링 빈으로 등록할까요? 실무에서는 주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔을 사용합니다. 하지만 정형화되지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 설정을 통해 스프링 빈으로 등록합니다. MemoryMemberRepository를 변경할 계획이므로 우리는 설정을 통해 스프링빈으로 등록하고 사용하면 기존의 코드를 건드리지 않고 변경할 수 있습니다. #컨트롤러를 제외한 회원 서비스와 회원 리포지토리의 @Service, @Repository, @Autowired 어노테이션을 제거하고 진행합니다. 1. he..
-
인텔리제이로 스프링부트 시작하는 법Spring Framework 2022. 3. 24. 23:21
우선 인텔리제이를 다운로드하여 보겠습니다. 인텔리제이 홈페이지 https://www.jetbrains.com/ko-kr/idea/download/#section=windows 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com 설치방법은 여기서 너무 친절하게 알려주십니다. https://goddaehee.tistory.com/195 [IntelliJ] Intellij 설치방법 [IntelliJ] Intellij 설치방법 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ IntelliJ 설치 방법 ] 입니다. : ) Eclipse에서 IntelliJ로 갈아탄 친구에게 추천받았는데, 개발 퍼포먼스 면에서 엄청 .. goddaehee.t..
-
스프링 부트 - 회원 관리 예제 실습 (컴포넌트 스캔과 자동 의존관계 설정)Spring Framework 2022. 3. 23. 00:01
MemberService와 MemberRepository를 만들었습니다. 또한 테스트 코드를 통해 회원가입이 잘 동작하는 것도 테스트해 보았습니다. 이제 여기에 화면을 붙이려면 Controller와 View Template가 필요합니다. Controller는 MemberService를 통해 회원을 추가해야 합니다. 또한 MemberService는 MemberRepository를 통해 회원의 정보를 조회하고 등록합니다. 따라서 Controller -> MemberService -> MemberRepository 의존관계가 성립합니다. 1. hello.hellospring.controller 패키지에 MemberController.java 파일 생성 package hello.hellospring.contro..
-
[Error] Using tabs can lead to unpredictable resultSpring Framework 2022. 3. 4. 01:53
application.yml 파일을 작성할 때 tab을 이용하여 들여쓰기를 할 경우 에러가 발생합니다. Window -> Preferences -> General -> Editors -> Text Editors -> Insert spaces for tabs 선택 그러면 에러는 해결됩니다. 또한 yml 파일 작성시 주의사항이 탭을 적절하게 넣지않으려 오류를 뱉기때문에 depth를 잘 고려해서 작성해야합니다! 출처 https://velog.io/@yeoro/Error-Using-tabs-can-lead-to-unpredictable-results [Error] Using tabs can lead to unpredictable results YAML 파일에서 tab 사용시 발생하는 에러 velog.io