본문 바로가기
반응형

개발/Spring71

[Spring] Spring boot parent dependencyManagement Spring boot 의존성을 받아오기 위해서는 2가지 방법이있다. 를 이용하는 방법과 를 이용하는 방법니다. org.springframework.boot spring-boot-starter-parent 2.2.5.RELEASE org.springframework.boot spring-boot-dependencies 2.2.5.RELEASE pom import 언뜻보면 같은것같지만 확실한 차이점이 있다. 를 사용하게된다면 필요한 dependency들을 가지고오는것 뿐만아니라 java버전을 1.8로 기본세팅 인코딩방식을 UTF-8로 세팅 리소스들을 읽는기능등 다양한기능을한다. 자세한기능은 여기에서 확인가능하다. 반면에 는 parent의 다양한기능은 제외하고 dependencyManagement기능만 수행하.. 2020. 3. 3.
[Spring] Spring Security 알아보기 Spring Security란 ? 강력하고 커스텀마이징 인증과 접근제어를 할 수 있는 프레임워크 인증과 허가를 제공하는것에 중점을 둔 프레임워크 custom 요구사항이 생겼을때 쉽게 확장 가능하다. 특징 인증 및 허가에 대한 포괄적이고 확장가능한 지원 session fixation, csrf, clickjacking 공격으로부터 보호해준다. Servelet API integration Optional integration With Spring Web MVC 간단한 동작방식 Filter의 attemptAuthentication에서 this.getAuthenticationManager().authenticate(authRequest) 을 통해 알맞는 Provider를 찾아 authenticate로직을 실행하.. 2020. 3. 3.
[Spring Boot] Spring Boot의 의존성 원리와 @SpringBootApplication Spring Boot는 간단한 xml설정으로 많은것을 사용할 수 있다. 이 게시글은 그 원리를 알아본다. 위와같은 parent로 설정된부분을 타고올라가다보면 최상위에 spring-boot-dependencies가 나오게된다. spring-boot-dependencies부터 아래로 내려오면서 설정되어있는 의존성들을 가져온다. 자동으로 가져오는 의존성들의 버전을 바꾸고 싶다면 부모의 버전을 바꾸면된다. 추가로 필요한 의존성이 있다면 위와같은 방법으로 추가하면 된다. 이로써 의존성 원리와 의존성 추가하는방법을 간략하게나마 알게되었다. @SpringBootApplication은 사실상 아래의 세가지 어노테이션으로 구성된다. @SpringBootConfiguration // configuration이랑 유사한 어.. 2020. 3. 3.
[Querydsl] Dto Q파일 만들기 아래와 같은 DTO파일이 있을 때 Q파일로 생성하는 방법을 알아보도록 하겠다. 1. 생성자 위에 @QueryProjection 어노테이션을 달아준다. 2. compileQuerydsl을 더블클릭한다. 3. 생성확인 2020. 2. 29.
[Intellij] lombok 적용하기 1. Lombok 설치 2. compiler-annotation processors-enable annotation processing check -OK 2020. 2. 24.
[Spring 기초] IoC란 ? IoC (Inversion of Control) 제어의 역전이라고 불리운다. 제어권이 역전 되었다는 뜻이다. 예전에는 의존관계의 제어를 개발자가 직접 해주었다. 그러나 제어권이 컨테이너로 넘어갔고 객체의 생성부터 생명주기의 관리까지 객체에 대한 제어권이 바뀐것을 IoC라고 한다. 위와 같은 Repository 객체가 있을때 과거에는 아래와 같이 개발자가 직접 제어했다. 하지만 제어권이 컨테이너로 넘어갔고 객체의 생성과 생명주기의 관리까지 할 수 있기때문에 아래와 같은 방식으로 바뀐다. IoC 컨테이너란 ? 핵심 Interface : BeanFactory Application Component 중앙 저장소 Bean 설정 소스로부터 빈 정의를 읽어들여 빈을 구성하고 제공하는 역할을 한다. Spring IoC.. 2020. 2. 23.
[Spring Boot] maven spring boot configuration annotation processor not found in classpath IntelliJ에서 @Configuration 어노테이션을 사용할때 maven spring boot configuration annotation processor not found in classpath 이러한 오류가 뜬다면 pom.xml 에 위와같은 dependency 추가후 Reimport 하시면 해결됩니다. 2020. 2. 20.
[JPA] No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call 삭제를 수행하다보면 위와같은 오류가뜨면서 삭제가 되지않는다. 해결법 : 삭제를 수행할 메소드 위에 @Transactional 어노테이션을 붙여준다. 2020. 2. 17.
[Spring Boot Security] Custom Logout Form 구현시 바로 로그아웃되는 현상 Spring Boot Security(이하 시큐리티) 에서는 Login View를 Custom 하게 된다면 아래 두개의 Filter가 사라진다. 그렇기 때문에 Logout을 따로 처리를 해줘야한다 SecurityConfig File이다. 보는것과 같이 loginPage를 /login이라고 명시해주었다. 그렇기때문에 위의 설명과 같이 Filter 2개가 제거된다. 위와같이 설정해주고 localhost:/logout 으로 들어가면 logout Form이 뜰거라 생각했지만 그렇지 않았다. 바로 logout처리가 되었다. 필자의 추측으로는 logout이라는 요청이 들어오면 어떠한 filter에서 가로채서 처리를 하는것같다. (이 글을보시는 분중에 어떠한 filter인지 아시는분은 알려주시면 정말 감사하겠습니다).. 2020. 2. 13.
[Spring boot] Qdomain 재생성 후 실행이 안되는 오류 정확히 무슨문제인지는 모르나 ddl-auto : update를 create로 한번 실행 시켜주면 정상적으로 동작한다. Qdmain이 바뀌어서 매칭되는게 없어서 나는 오류가 아닐까.... 조심스레 추측해보지만 혹시라도 아시는분 계시면 댓글로 부탁드리겠습니다. 2020. 2. 11.
[Spring Boot] 도메인 수정후 compileQuerydsl 실행시 Attempt to recreate a file for type 오류 도메인 수정후 compileQuerydsl 실행시 Attempt to recreate a file for type 오류가 날 경우가 있을것이다. 그런 경우에 querydsl을 실행해서 나타난 폴더를 삭제해주고 다시 실행하면 정상적으로 동작할것이다. 일반적으로 src/main.generated 경로를 많이쓴다. 2020. 2. 11.
[Spring Boot] Java Config (@Bean @Component) 회사에서 프로젝트분석을 할 일이 생겼다. 필자는 Java로 Bean정보를 관리하는 방법을 공부했고 안다고 생각했다. 그러나 봤을때 Bean정보를 등록하는건지는 알겠으나 정확히는 알지 못했다. 기초가 부족하다고 판단하여서 기초부터 다시 공부를 하고자 마음을 먹었다. @Configuration : 설정 파일이라는것을 알려주는 어노테이션 @Bean : 사용자가 직접 제어하지 못하는 외부 라이브러리를 빈으로 등록할때 사용 @Component : 사용자가 직접 제어할 수 있는 Class를 빈으로 등록할때 사용 @Bean 과 @Component의 사용목적이 다르기 때문에 허용되지 않는 범위에서는 사용할 수 없다. (에러 발생) 사용예시 빈 ArrayList와 Study클래스의 초기값이 잘 나온다. 2020. 2. 10.