본문 바로가기
반응형

Spring22

[SpringBoot 3.0] Jasypt를 이용한 설정값 암호화 웹어플리케이션을 개발하다보면 DB정보와 같은 보안이 필요한 설정을 yaml 파일에 설정하게 되는데요 이부분을 암호화 하는 방법을 알아보겠습니다 우선 아래와 같이 의존성 추가를 해줍니다 dependencies { implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5' } 그리고 난후에 아래처럼 Jasypt Bean을 생성해줍니다 @Configuration public class JasyptConfig { @Bean("jasyptStringEncryptor") public StringEncryptor stringEncryptor() { PooledPBEStringEncryptor encryptor = new PooledPBEStr.. 2023. 2. 22.
[Spring JPA] 복합키 적용하는 방법 Spring JPA에서 복합키를 적용하는방법중 저는 @IdClass를 이용하는 방법을 사용했습니다 우선 teamId와 memberId가 복합키로 구성된다면 아래 코드처럼 우선 클래스를 생성합니다 @Data public class TeamMemberPK { private String teamId; private String memberId; } 그런후 해당 복합키를 적용하는 entity에 @IdClass를 이용하여 아래와 같이 설정합니다 @Builder @NoArgsConstructor @AllArgsConstructor @Getter @Table(name = "team_member") @IdClass(TeamMemberPK.class) @Entity public class TeamMember { @Id .. 2023. 2. 19.
[Spring JPA] 다건의 데이터 삭제시 성능 개선 public interface MemberRepo extends JpaRepository{ void deleteAllByName(String name); } Spring JPA에서 공통함수를 이용하여 위의 코드와 같이 deleteAllByName을 생성 했을 때 성능 문제가 발생했습니다 JPA 특성상 해당 조건으로 먼저 Select 쿼리를 보낸후 리턴된 객체의 ID값으로 Delete 쿼리를 보내는데 건수가 많을 경우 성능에 이슈가 발생합니다 해결방법은 아래처럼 직접 쿼리를 작성해주시면 됩니다 public interface MemberRepo extends JpaRepository{ @Modifying @Query("delete from Member m where m.name = :name") void d.. 2023. 2. 19.
[Spring] DI 방법과 생성자 주입을 사용해야 하는 이유 Spring에서 DI 주입방법은 대표적으로 아래 3가지 방법이 있습니다 1. 필드주입 @RestController @RequestMapping("/test") public class TestController { @Autowired private TestService testService; public int sum(int a, int b) throws Exception { return testService.sum(a, b); } } 필드 주입은 코드가 간결해진다는 장점이 있습니다. 하지만 객체 수정이 불가능해서 요즘처럼 테스트 코드의 중요성이 강조되는 추세에 밀려 사용을 지양하게 되었습니다. 2. Setter 주입 @RestController @RequestMapping("/test") public c.. 2023. 2. 15.
반응형