본문 바로가기

Spring

(18)
@ConfigurationProperties 사용법 - 삽질중인 개발자 - @configurationproperties 사용법 - ConfigurationProperties *.properties , *.yml 파일에 있는 property를 자바 클래스에 값을 가져와서(바인딩) 사용할 수 있게 해주는 어노테이션 Spring boot 에서는 운영에 필요한 설정(DB 정보, LOG설정 등등 )들을 *.properties , *.yml 에 써두고 관리한다. 이 설정은 KEY - VALUE 의 형태로 저장되어 관리하고 있으며 @Value 을 사용하여 바인딩을 할 수 있다. 아래와 같은 properties 파일이 있다고 가정할 때 site-url.naver=https://www.naver.com site-url.google=https:/google.com @Value 를 사용하여 바..
Spring boot 로그 설정 및 출력 방법- logback 설정하기 - 삽질중인 개발자 - Spring boot 로그 설정- 스프링 부트의 기본 로그 툴은 Logback이다. 로그 툴을 사용하는 이유는 System.out.print() 를 사용하게 되면 IO리소스를 많이 잡아먹어 속도가 느리며 후에 로그를 파일로 남겨서 확인해야 하기 때문이다. 로그를 잘 남겨놔야지 개발 단계 혹은 운영 단계에서 문제가 발생시 쉽게 잡아 낼 수 있다. ( 특히 SQL 쿼리는 눈에 보여야지 디버깅하기 쉽다. ) 1. pom.xml 에 추가 spring starter에 포함 안되어 있는 로깅시 쿼리를 풀로 보여줄 수 있게 해주는 라이브러리를 추가한다. org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 2. log4jdbc.log4j2.properties 생성 log..
spring boot static 파일 다운로드 구현 - 삽질중인 개발자 - 정적 파일 다운로드 - 정적 파일이란 응답 요청이 왔을때 별도의 처리를 하지 않고 바로 보내줄 수 있는 파일들을 말한다. 보통 CSS, HTML, JS 등과 홈페이지의 소개서.pdf, 사용설명서.pdf 등의 파일을 말한다. 1. 코드 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.spring..
spring security DB를 이용한 로그인 구현 3 ( 로그아웃 하기 ) - 삽질중인 개발자 - logout - 이 포스팅에서는 로그아웃을 구현한다. 1. 로그아웃 버튼 만들기 스프링 시큐리티의 기본 로그아웃 url은 POST 메소드의 /logout 이다. LOGOUT 2. SecurityConfig.java (이전 포스팅 6번) 에 아래의 코드 추가 @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/member/**").hasAnyAuthority("MEMBER") .and() .formLogin()//로그인 폼 사용 .loginPage("/login")//커스텀 로그인 페이지 .successHandler(customAuthentication..
스프링 시큐리티 DB를 이용한 로그인 구현 2 ( ajax 로그인 ) - 삽질중인 개발자 - spring security ajax login - 이 포스팅에서는 jQuery Ajax를 이용한 커스텀 로그인 페이지 구현을 할 것이다. 스프링 시큐리티에 기본 로그인 페이지는 로그인 실패시 페이지를 새로고침하고 쿼리스트링(localhost:8090/login?error)을 주는 방식으로 구현이 되어 있는데 이 방식으로 구현을 하면 페이지를 새로 띄워야 할 뿐만 아니라 입력했던 정보에 대해서 전부 사라지게 된다. 위에나오는 불편함을 해소하기 위해 요즘 나오는 대부분의 사이트를 로그인시 ajax를 이용해서 login을 한다. 1. LoginController.java 생성 스프링 시큐리티의 기본 로그인 url은 /login 이다. 이걸 커스텀하기위해 /login 을 재정의한다. 아래의 코드에서는 로그..
스프링 시큐리티 DB를 이용한 로그인 구현 1 ( 회원 설정 및 일반 로그인 ) - 삽질중인 개발자 - spring security 로그인 (mariaDB) - 스프링 시큐리티 스프링 기반의 보안 관련 프레임워크이다. 스프링 시큐리티를 사용하면 보안에 관련된 옵션을 자동적으로 구현해주기에 우리가 어느정도 신경을 안써도 된다. 개발 환경 - spring boot 2.2.5.RELEASE - jpa ( 이거 무조건 배우자 ) - mariaDB ( JPA 사용하면 oracle , h2 기타 등등 모든 DB 가능 ) - jsp jpa를 사용해서 DB를 다룰건데 jpa가 아닌 mybatis를 이용해서 구현할때 중간중간에 어떤 코드가 들어가야 하는지 써놨다. 이 포스팅에서는 우선 로그인을 시켜볼 것이다. 하기전에 application.properties 에 가서 미리 설정하자. ( 한글로 써둔 부분은 알아서 채우..
Mapped Statements collection does not contain value for~ 에러 - 삽질중인 개발자 Mapped Statements collection does not contain value for ~ 에러 발생시 확인해야 하는 부분 [다음 에러가 나왔을 시 체크해봐야 하는 부분] 1. mapper id가 다를경우 - 대부분 이경우 - mapper파일에 가 중복되는지 체크 3. mapper location 세팅 확인 - 경로가 잘 잡혔는지. (프로젝트 처음 세팅을 했는데 안되는 경우 이 부분 확인) - classpath*:static/mappers/**/*Mapper.xml 이부분 (*가 없는 경우 *를 추가) 대부분의 경우 위에 있는 부분을 확인하면 에러를 잡을 수 있었음.
Spring boot oracle db 연동 , spring boot oracle jdbc 설정 - 삽질중인 개발자 Spring boot에서 오라클 DB 연동하기 + Mybatis 설정하기 스프링 부트에서 oracle과 mybatis를 설정하는 방법입니다. spring boot oracle datasource를 설정하기 전에 필요한 jar 파일을 다운로드 합니다. 1. pom.xml에 추가 org.mybatis mybatis 3.4.0 org.mybatis mybatis-spring 1.3.0 com.oracle.jdbc ojdbc8 12.2.0.1 메이븐 다운로드가 완료된후 m2 폴더에 가보면 C:\Users\유저명\.m2\repository\com\oracle\jdbc\ojdbc8\12.2.0.1 에 가면 ojdbc jar는 다운로드가 안되어 있음. ojdbc는 다운로드가 안되니까 사설 레파지토리를 사용해서 다운하..