Spring/Spring

    스프링 부트 의존관계 주입 에러

    스프링 부트 의존관계 주입 에러

    스터디를 하면서 내가 본 적 없는 에러와 예외들이 나와서 기록해보고자 한다. Parameter 0 of constructor in com.example.study.ApiController required a bean of type 'service.MemberService' that could not be found. ApiController 생성자에 필요한 MemberService 타입의 빈을 찾을 수 없다. 따라서 스프링 빈 or 의존관계 자동 주입의 문제라 파악되어서 일단 어노테이션을 잘 붙여서 스프링 빈으로 잘 등록했는지 확인했지만 이 부분은 멀쩡했었다. MemberService 타입의 클래스를 스프링 빈에 등록할 수 있게 @Service 어노테이션이 붙어있었다. 그렇다면 스프링 빈 자동 등록과 의..

    스프링부트 - 하루에 한 번 쿠키 기반 조회수 증가 구현

    스프링부트 - 하루에 한 번 쿠키 기반 조회수 증가 구현

    조회수 어뷰징은 어떻게 막아야 할까? 어뷰징 (Abusing) : 의도적인 조작을 통해 조회수나 클릭수를 높이기 위한 일련의 행위 CRUD 커뮤니티 프로젝트를 하면서 고민했던 주제입니다. 다른 프로젝트에서는 커뮤니티 부분을 개발하지 않 ssdragon.tistory.com 조회수 어뷰징은 어떻게 막아야 할까? 라는 의문에서 시작된 조회수 증가 로직 구현하기입니다. 제일 간단하면서도 생각보다 많은 처리를 할 수 있는 쿠키 기반으로 구현해봅니다. 다음과 같은 전제조건이 있습니다. 쿠키 기반 하루에 1번 조회수 증가 비회원도 조회수 증가 구글에 검색해본 결과 하루에 1번 조회수 증가하는 로직을 살펴보았는데 막연히 현재 시간에서 24시간동안만 유지하는 쿠키부터해서 다른 게시글을 들어갈때마다 쿠키 유지시간이 다시..

    [SpringBoot] 이미지 파일 다운로드

    [SpringBoot] 이미지 파일 다운로드

    https://ssdragon.tistory.com/99?category=1008700 [Spring] 스프링에서 파일저장하기 https://ssdragon.tistory.com/82 [Spring] IntelliJ 파일 업로드 주의사항 @PostMapping("/filetest") public String addImage2(@RequestParam("Photo") MultipartFile uploadFile, HttpServletRequest request).. ssdragon.tistory.com 파일을 저장했으니 다운로드를 만들어보자. 우선 파일을 어떻게 저장했는지 살펴보자. 저번 게시글에서는 파일을 저장하는 것까지 했었는데 여기서 우리는 경로를 알고 있다. 따라서 이름이 중복되지 않게 저장할 파일..

    [스프링시큐리티] Spring Security 5.7 (WebSecurityConfigurerAdapter 에러해결방법)

    [스프링시큐리티] Spring Security 5.7 (WebSecurityConfigurerAdapter 에러해결방법)

    대학교 과제에서 게시판 만들기가 있어서 회원기능을 Spring Security(스프링 시큐리티)를 적용하여 사용했는데 아래와 같은 방법으로 더이상 사용되지 않는다고 표시됐다. 더 이상 WebSecurityConfigurerAdapter 를 상속받아서 스프링 시큐리티를 설정하지 않는다고 나와있다. 그렇다면 공식 홈페이지에서는 뭐라고 나와있는지 살펴보자. 스프링 공식문서 사이트에서 스프링 시큐리티를 검색해서 만드는 방법을 찾아보면 여기는 WebSecurityConfigurerAdapter를 사용하고 있었다. 그래서 다른 공식문서를 찾아보던 와중에 아래 게시글을 발견하였다. WebSecurityConfigurerAdapter가 없는 스프링 시큐리티라는 제목이다. 스프링 시큐리티 5.7.0-M2 버전부터는 We..

    스프링에서 파일저장하기

    스프링에서 파일저장하기

    https://ssdragon.tistory.com/82 [Spring] IntelliJ 파일 업로드 주의사항 @PostMapping("/filetest") public String addImage2(@RequestParam("Photo") MultipartFile uploadFile, HttpServletRequest request) { String fileName = uploadFile.getOriginalFilename(); String filePath =.. ssdragon.tistory.com 최근에 유입된 게시글을 봤을때 파일 업로드 부분을 보셨기에 좀 더 보충하고자 한다. 사용버전 - Spring Boot 2.6.4 - java 1.8 - Tyhmeleaf (뷰템플릿) 파일 업로드 전송 방식..

    [Lombok] @NoArgsConstructor, @ToString

    @NoArgsConstructor 보통 클래스를 만들면 아래처럼 디폴트 생성자를 만들 수 있다. public class Member { // 디폴트 생성자 Member() { } } 롬복에서는 @NoArgsConstructor로 디폴트 생성자를 만들 수 있으며 설정까지 가능하다. 사용 방법은 다음과 같다. @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Member { // protected Member() {} 가 만들어짐 } @ToString Object 클래스가 가진 메서드 중 toString()이 있다. 이 메서드로 객체가 가지고 있는 정보, 값들을 문자열로 만들어 리턴하는 메서드이다. 우리가 만드는 클래스도 extends로 직접 ..

    스프링부트 시큐리티 - SNS 로그인과 SNS 회원가입

    스프링부트 시큐리티 - SNS 로그인과 SNS 회원가입

    https://ssdragon.tistory.com/83 스프링부트 시큐리티 - 일반 로그인과 회원가입 Spring Boot DevTools Lombok Spring Web Spring Data JPA H2 Database OAuth2 Client Thymeleaf 위 라이브러리들을 추가하여 스프링 시큐리티 예제를 만들어보자. implementation 'org.springframework.boot:sp.. ssdragon.tistory.com 이전 프로젝트에서 이어서 하겠다. 스프링 시큐리티 구글 https://console.cloud.google.com/apis/dashboard Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을..

    스프링부트 시큐리티 - 일반 로그인과 회원가입

    스프링부트 시큐리티 - 일반 로그인과 회원가입

    Spring Boot DevTools Lombok Spring Web Spring Data JPA H2 Database OAuth2 Client Thymeleaf 위 라이브러리들을 추가하여 스프링 시큐리티 예제를 만들어보자. implementation 'org.springframework.boot:spring-boot-starter-security' 아 그리고 제일 중요한 Security를 추가하지 않았는데 이 때는 build.gradle에 위 코드를 추가하여 시큐리티를 설치하자. 설치가 끝나고 스프링을 시작하여 http://localhost:8080으로 바로 들어가면 스프링 시큐리티가 제공하는 로그인페이지가 나온다. 이렇게 패키지를 만들어두고 이 구조를 기준으로 설명하겠다. 먼저 domain 패키지에 ..