Spring Framework: 317개의 글

@Autowired 어노테이션의 경우 주로 변수 위에 설정하여 해당 타입의 객체를 찾아서 자동으로 할당한다. 그러므로 위의 private UserDAO userDAO의 경우 변수 선언만 했지 객체 할당을 하지않았다. 그러므로 위 상태에서 실행을 해버리면 userDAO의 메소드는 실행이 되어지지 않는다. 그러나 우리는 @Autowired 어노테이션으로 해당 변수위의 입력했기 때문에 해당 어노테이션이 해당 변수의 타입을 체크하고 그 타입의 객체가 메모리에 존재하는지 확인 후에 그 객체를 변수에 주입한다. 출처 : namubada.net/76?category=777086

위의 사진을 보면 BoardServiceClient의 BoardService boardService = (BoardService) container.getBean("boardService");에서 boardService를 호출하고있다. boardService는 applicationContext.xml에 있으며, 아래 사진에서 해당 코드의 내용을 확인할 수 있다. 그런데 특이한 점은 사진 어디에서도 boardService를 찾을 수 없다는 것이다. 그렇다면 어떻게 실행이 되는 것일까? 해당 부분의 해답은 아래 두 사진에서 확인할 수 있다. 실행되는 순서는 아래와 같다. 1. BoardServiceClient를 실행하면 2. applicationContext.xml에서 3. context:component-..

| 스프링 게시판 만들기 - 부트로 쉽게 구현한 Spring 게시판 예제 git repository는 여기를 클릭하시면 됩니다. 스프링 게시판은 스프링 MVC로 스프링 부트에서 밀고있는 툴인 Thymeleaf를 사용하여 쉽게 만들 수 있습니다. REST API + SPA( React, Vue 등 )으로 만들 수 있지만 간단한 커뮤니티 사이트 구현을 위해서는 조금 과한 기술스택을 사용하는 것이 아닌 지 생각해 봐야 합니다. 스프링 MVC를 사용했을 때의 데이터 흐름은 아래의 링크를 참고하여 보시면 될 것 같습니다. [Spring Framework/Spring 입문 - 개념 및 핵심] - [Spring] 스프링(Spring) MVC 아키텍처/설계 구조 위에서 JSP를 Thymeleaf라고 생각하고 읽으시면 ..

* 아래의 모든 코드는 깃 저장소에 올려놨습니다. 참고 부탁드려요 * OAuth란? OAuth(Open Authorization)는 토큰 기반의 인증 및 권한을 위한 표준 프로토콜입니다. OAuth와 같은 인증 프로토콜을 통해 유저의 정보를 페이스북, 구글, 카카오 등의 서비스에서 제공받을 수 있고 이 정보를 기반으로 어플리케이션 사용자에게 로그인이나 다른 여러 기능들을 손쉽게 제공할 수 있습니다. 자세한 내용은 여기를 참조하시면 좋을 것 같습니다. 스프링 부트로 OAuth2를 통한 로그인 기능 스프링 부트로 OAuth2를 통한 로그인 기능을 제공할 수 있습니다. 여기서는 페이스북, 구글, 카카오에서 제공하는 정보를 통해 사용자가 웹페이지에 손쉽게 로그인하는 기능을 구현할 것입니다. 스프링부트로 해당 기..

| 스프링 부트 Actuator 스프링 부트 어플리케이션은 actuator라는 모듈을 통해 어플리케이션 상태를 종합적으로 정리해서 제공해줍니다. 이를 통해 스프링 부트 어플리케이션 운영을 손쉽게 할 수 있죠. actuator는 다양한 Endpoints(사용자나 디바이스같은 IT 서비스의 최종 목적지)를 제공하여 이 다양한 Endpoints를 통해 어플리케이션의 운영 정보를 알 수 있습니다. | Actuator 접근하기 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---actuator | | | ActuatorApplication.java | | | | | \---resources | | | applicati..

| RestTemplate, WebClient Spring 기반 프로젝트를 진행하면 컴포넌트 내부에서 URL을 요청해야하는 경우가 생깁니다. Spring에서는 Http 요청을 간단하게 이용할 수 있도록 Blocking I/O 기반의 RestTemplate, Non-Blocking I/O 기반의 WebClient 모듈을 제공하고 있습니다. | RestTemplate 예제 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---tutorial | | | \---webclient | | | HelloController.java | | | RestRunner.java | | | WebclientApplication.java | | | | | \---re..

| 스프링 부트 시큐리티 커스터마이징 스프링 부트에서는 사용자의 요청에 따라 어플리케이션 개발자가 인증 절차를 상황에 맞게 설정할 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springsecurity | | | Security.java | | | SimpleController.java | | | SpringSecurityApplication.java | | | | | \---resources | | | application.properties | | | | | +---static | | \---templates | | hello.html | | index.html | | my.html 의..

| 스프링 부트 시큐리티 스프링 부트에서는 웹 접근 시 로그인 같은 인증과정을 쉽게 구현할 수 있도록 시큐리티 모듈을 제공합니다. | 스프링 부트 시큐리티 연동하기 의존성 추가 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-security org.springframework.security spring-security-test ${spring-security.version} test 프로젝트..

| 몽고DB란? 몽고DB는 데이터 객체들이 컬렉션 내부에서 독립된 문서로 저장되는, 문서 모델 기반(Document-Based)으로 하는 NoSQL 데이터베이스입니다. 컬렉션이라는 것은 몽고DB에서 용도가 같거나 유사한 문서들을 그룹으로 묶는 것을 말합니다. 그리고 이 컬렉션들은 기존 SQL의 데이터베이스의 테이블처럼 비슷하게 동작합니다. 몽고DB의 문서 모델은 JSON 기반 포맷입니다. 따라서 유여하게 데이터를 즐의하고 조작할 수 있습니다. | 스프링 부트 몽고DB 연동하기 의존성 설정 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframewor..

| 레디스(Redis)란? 레디스는 Key-Value 기반인 인메모리 데이터 저장소로서 주로 캐쉬 솔루션으로 쓰이고 있는 오픈 소스 프로젝트입니다. 레디스를 이용하게 되면 JVM위에서 동작하지 않고 어떤 데이터를 캐싱할 수 있습니다. 따라서 GC 대상이 되지 않고 그로 인한 오버헤드가 줄어드는 장점이 있습니다. | 스프링 부트 레디스 연동하기 의존성 추가 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-data-redis 레디스 도커 실행 docker run -p 6379:6379 --na..