본문 바로가기

BackEnd : Spring/SpringBoot

(18)
[SpringBoot] JpaRepository @Modifying, @Transactional public interface RecCampListRepository extends JpaRepository { @Query("SELECT rc FROM RecCampList rc WHERE rc.user.id = :userId") List getByUser(@Param("userId") String userId); @Query("SELECT rc FROM RecCampList rc WHERE rc.doNm = :doNm and rc.user.id = :userId") List getByDoNmAndUser(@Param("userId") String userId, @Param("doNm") String doNm); @Modifying @Transactional @Qu..
[TalentTree 프로젝트] HttpSession : 로그인된 사용자 정보 가져오기 HttpSession을 사용하게 된 배경원래 스프링 프로젝트에서 로그인, 로그아웃에서 사용자 정보를 관리하는 것을 Spring Security를 쓰곤 한다.이 프로젝트 개발 기간이 짧기도 했고, 최초 로그인 시 회원가입으로 구현하기로 하여 세션에 로그인된 사용자 정보를 담기로 했다.LoginController로그인과 관련된 로직을 처리하는 Controller이다.@Controller@RequiredArgsConstructorpublic class LoginController { private static String UPLOAD_DIR = System.getProperty("user.dir") + "/src/main/resources/static/bootstrap/assets/uploads"; ..
[Springboot] 연관관계 매핑 : 일대일 연관관계 매핑 종류One To One : 일대일One To Many : 일대다Many To One : 다대일Many To Many : 다대다연관관계 매핑 방향단방향 : 두 엔티티의 관계에서 한쪽의 엔티티만 참조하는 형식양방향 : 두 엔티티의 관계에서 각 엔티티가 서로의 엔티티를 참조하는 형식일대일 매핑1. 일대일 단방향 매핑BaseEntity@Getter@Setter@ToString@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public class BaseEntity { @CreatedDate @Column(updatable = false) private LocalDateTime createdAt; @LastModi..
[Springboot] SpringBoot 3.x maven+ QueryDSL 설정하기 pom.xml 5.0.0 com.querydsl querydsl-apt ${querydsl.version} jakarta com.querydsl querydsl-jpa jakarta ${querydsl.version} com.querydsl querydsl-core 5.0.0 기존의 공식문서를 참고하면 plugin도 추가해주어야 하는데, 여러번의 오류와 서치 끝에 spring boot 3 이상 버전과 java 17 이후로 jakarta에서 plugin이 deprecated 되었다는 정보를 확인하였다.https://samori.tistory.com/60 Querydsl + Spring 3.0 + Java17 업데이트 내용! [Maven+Gra..
[Springboot] MockBean 테스트 코드 작성하기 @WebMvcTestpublic class ProductControllerTest { @Autowired private MockMvc mockMvc; @MockBean ProductServiceImpl productService; @Test @DisplayName("MockMvc를 통한 Product 데이터 가져오기 테스트") void getProductTest() throws Exception { given(productService.getProduct(123L)).willReturn( new ProductResponseDto(123L,"pen",5000,2000) ); S..
[Springboot] Spring Doc으로 api 문서화하기 https://springdoc.org/ OpenAPI 3 Library for spring-bootLibrary for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file.springdoc.org1. pom.xml에 의존성 추가나는 스프링 3.x 버전을 쓰고 있어 swagger 대신 spring doc을 사용하였다.스프링 3 버전 : springdoc-openapi v2.5.0 사용하기 org.springdoc springdoc-openapi-starter-webmvc-ui 2.5.0 ..
[SpringBoot] MariaDB 기본 설정 https://mariadb.com/kb/en/postdownload/mariadb-server-11-3-2/ Thank you for downloading. Create your MariaDB account to receive download release notifications, product updates an..." data-og-host="mariadb.com" data-og-source-url="https://mariadb.com/kb/en/postdownload/mariadb-server-11-3-2/" data-og-url="https://mariadb.com/kb/en/postdownload/mariadb-server-11-3-2/" data-og-image=""> MariaDB Ser..
[Springboot] lombok 어노테이션, MemberDto import lombok.Getter;import lombok.Setter;import lombok.ToString;@Getter@Setter@ToStringpublic class MemberDto { private String name; private String id;}@ToString : MemberDto의 toString 함수를 자동으로 오버라이딩GetController@GetMapping("/request2") public String getRequestParam2( MemberDto memberDto ) { return memberDto.toString(); }MemberDto 형태로 요청하고, 받아올 수 있다.