Spring&IntelliJ (44) 썸네일형 리스트형 *************스프링 설정코드 변경 연습************** 처음에 문제는 아래와 관련해서 시작되었다. 어떻게 함수에서 String형 반환값을 반환하면 그것을 가지고 그 "반환되는 문자열.html" 라는 이름의 페이지에 접근을 하는가? 답은 thymeleaf template engine이고 이 템플릿엔진의 설정을 바꾸면 resources/templates 라는 폴더에서 해당 파일명을 찾지 않고 다른 폴더에서 찾을수 있도록 변경할 수 있다는 것이 강사의 설명이었다. 그러면서 스프링 부트의 메뉴얼을 보고 설정을 변경할 수 있다고 말하였고 나는 이런 설정을 직접 한번 변경해 보는 과정이 큰 공부가 될것이라고 생각하여 한번 변경해보기로 하였고 그 결과는 성공적이었고 많이 배울수 있는 계기가 되었다. 아래는 그 과정에서 내가 알게 된것을 정리한것이다. 1. 첫번째 난관은 .. 롬복(lombok)이란 출처: https://mangkyu.tistory.com/78 Java 언어를 이용해 개발을 하다 보면 기계적으로 작성해야 하는 코드들이 상당히 많다. 이번에는 기계적인 코드 작성을 자동화하여 코드 다이어트를 해주는 Java 필수 라이브러리 Lombok에 대해 알아보도록 하겠다. 롬복이란? 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리이다. Lombok을 이용하면 Getter, Setter, Equlas, ToString 등과 다양한 방면의 코드를 자동완성 시킬 수 있다. Spring AOP가 프록시 객체를 이용하여 구현하는 이유 참고: https://velog.io/@max9106/Spring-%ED%94%84%EB%A1%9D%EC%8B%9C-AOP-xwk5zy57ee (복습. Spring AOP(관점지향 프로그래밍)란? 공통관심사와 핵심 관심사를 분리하여 프로그래밍하도록 공통 관심사만을 편리하게 구현하도록 어노테이션, 라이브러리등을 제공함) 프록시 객체란? 프록시 객체는 원본 객체를 대신해서 호출될 객체로, 원본 객체를 감싸서 클라이언트의 요청을 처리하는 중간 단계에 위치합니다. 프록시 객체는 원본 객체와 같은 인터페이스를 구현하고 있어서, 클라이언트는 프록시 객체를 호출하는 것으로 인해 원본 객체의 메소드를 호출하는 것과 같은 효과를 얻을 수 있습니다. 프록시 객체를 사용하는 이유는, 프록시 객체를 통해 원본 객체에 대한 접.. Spring AOP와 관련 어노테이션 출처: https://pamyferret.tistory.com/51 개발을 하다보면 특정 패턴을 가진 메소드에 대해서 공통적으로 적용해줘야하는 기능이 있다. 제일 대표적인게 바로 로그 기록이 있는데, 이와 같은 기능을 특정 패턴을 가진 메소드에 넣기 위해서는 로그를 기록하는 공통 Util 메소드를 생성하고 해당 Util 메소드를 특정 패턴을 가진 메소드에 일일이 넣는 것을 생각할 수 있다. 하지만 이렇게 수동으로 공통 기능을 넣어줄 경우 추후 코드를 수정할 곳이 많아진다거나 어디에 Util 메소드를 넣었는지 찾기가 힘들어 유지보수가 힘들어진다. 위와 같이 특정 패턴을 가진 메소드에 공통되는 위치(실행 전, 실행 후)에 있는 공통되는 기능을 횡단 관심사(공통 관심사)라고 한다. 그리고 이러한 횡단 관심사를.. [Spring] 순환 참조(Circular References) 해결하기 인용: https://velog.io/@platinouss/Spring-Circular-References-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0 내가 아래글을 이해하기 위해서 필요한 것은 @Configuration 역시 @Component의 일종으로 컴포넌트 스캔시 빈 컨테이너에 포함된다는 것이다. 또한 아래와 같은 코드 구조에서 SecurityConfig를 빈에 등록하기 위해서는 authenticationProcider가 빈객체에 미리 존재하여야만 한다는 것이다. @Configuration @RequiredArgsConstructor public class SecurityConfig extends WebSecurityConfigurerAdapter { private fina.. jdbcTemplate의 RowMapper<T>인터페이스에 대해서! https://u-it.tistory.com/32 query( )메서드를 실행하면 첫번째 인자로 받은 SQL쿼리 문이 실행되고 그 결과(ResultSet과 갯수(rowNum))가 2번째 인자인 메서드를 호출했을때 생성되는 객체의 메서드인 mapRow의 인자로 전달된다(memberRowMapper()메서드가 실행된다는 것은 mapRow메서드를 구현한 익명객체가 생성된다는 말임. 다시말해 이 메서드는 익명클래스 RowMapper를 구현하는 익명 클래스의 객체를 생성한다는 뜻임). ResultSet과 쿼리에 결과에 해당되는 데이터의 갯수를 나타내는 정보를 이용하여 그 결과는 컬랙션클래스로 반환된다. query의 3번째인자는 1번째 SQL쿼리의 ? 자리에 바인딩된다. 위에서는 name이 알아보기 쉽게 사용되었다.. MyBatis란? 출처: https://ccomccomhan.tistory.com/130 https://khj93.tistory.com/entry/MyBatis-MyBatis%EB%9E%80-%EA%B0%9C%EB%85%90-%EB%B0%8F-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC 🧹 간단 정리 MyBatis를 사용하면 DB를 쉽게 다룰 수 있다. 예시) preparedstatement처럼 쿼리문을 복잡하게 입력하지 않고 실제 쿼리문과 유사하게 작성할 수 있다. preparedstatement : "UPDATE users SET name =?, email =? WHERE id =?" MyBatis : UPDATE users SET name = #{name}, email = #{email} WH.. JPA란? 출처: https://dbjh.tistory.com/77 https://chanho0912.tistory.com/25 https://www.youtube.com/watch?v=4CRpndN3tP0 https://www.youtube.com/watch?v=myS_Pt4uRVs&list=PLOSNUO27qFbvzGd3yWbHISxHctPRKkctO&index=1 JPA란? 자바진영의 ORM 표준 API임(이 말이 결코 사전적이라고 느껴지면 안된다) 아...드라이버가 곧 클래스다!!!!! JPA(ORM)은 나의 하인이다. CRUD의 단순하고 반복적인 쿼리작성 작업을 모두 대신하고 기계적으로 생성되는 테이블을 자동생성해 주기 때문이다. 1. JPA는 JAVA Persistence API이다. 2. JPA는 OR.. 이전 1 2 3 4 5 6 다음