반응형

Back 40

JPA findAll Specification

JPA에서 다중 파라미터 처리를 진행 할 때 아래의 예제 처럼 작성하면 기능 구현이 가능하다. Page adminUsers = null; if(adminUserApiRequest.getAccount() == null && adminUserApiRequest.getRole() == null) { adminUsers = adminUserRepository.findAll(pageable); } else if(adminUserApiRequest.getAccount() != null && adminUserApiRequest.getRole() == null) { adminUsers = adminUserRepository.findAllByAccount(pageable, adminUserApiRequest.getAcc..

Back/Spring Java 2020.01.14

BeanUtils.copyProperties

Class간 property를 복사해야 할 경우. 각 프로퍼티 별 setter를 나열하는 코드 보단. BeanUtils.copyProperties를 사용하면 훨씬 깔끔 하게 구현이 가능하다. 예를들어, @Data @AllArgsConstructor @NoArgsConstructor class Person { private String name; private Integer id; private String address; private String phone; } Person person1 = new Person("test1", 1, "Seoul", "010-1234-1234"); Person person2 = new Person("test2", 2, "Incheon", "010-1234-1234"); ..

Back/Spring Java 2019.12.23

Spring Security Login

Spring Security를 사용하기 전에 로그인 로직을 만드려면 이래저래 고려해야하고 예외처리 해 야할 부부들에 대해서 고민해야 할 내용이 많았다. 하지만 Spring Security를 사용하여 구성하게 되면 비교적 간단히 개발이 가능하다. Security Config @Configuration @EnableWebSecurity @EnableGlobalAuthentication @ComponentScan(basePackages = {"com.example.study.*"}) public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired AuthProvider authProvider; @Autowired AuthFailureH..

Back/Spring Java 2019.12.18

가변인자 Varargs

* 자바 1.5 이상 부터 가변 인자 메서드(Variable arity method)라고 부르는 varargs 메서드가 추가되었다. 이 메서드는 지정된 자료형의 인자를 0개 이상 받을 수 있다. 아래의 내용처럼 기존에는 다수의 매개변수를 인자로 받을때 배열 혹은 컬렉션을 사용 했다. public final class Test { public static void display(List list) { for(String s: list) { System.out.println(s); } } public static void main(String[] args) { List list = new ArrayList(); list.add("Apple"); list.add("Banana"); list.add("Orang..

Back/Spring Java 2019.12.18

Mybatis foreach에서 collection Map으로 가져오는 방법

파라미터로 넘길 collection 형태 ex) Map의 value에 또 HashMap을 선언한 경우 //Map 선언 private Map fieldData = new HashMap(); 아래의 코드처럼 foreach에서 Map형태를 매핑하려면 entrySet()를 사용. 첫 번째 foreach에서 item의 element를 두 번째 foreach의 collection으로 연결. // map.entrySet() AND INSTR(FD.${key}, ',${element[dtKey]},') > 0 AND FD.${key} = '${element[dtKey]}'

Back/Mybatis 2019.12.04

제네릭(Generic) 문법

제네릭(Generic)은 코드블럭 내부에서 쓸 자료형을 외부에서 지정하는 기법. 여러가지 자료형을 허용하고 싶을 때 Object로 선언해버리면 깔끔하지만, 그렇게하면 원하지 않는 자료형이 입력되었을 때의 오류를 컴파일 시점에 잡아낼 수 없음. * 장점 1. 컴파일 시 강한 타입 체크 가능. - 실행시 타입 에러가 나는 것보다 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지 2. 타입 변환(castring)을 제거. - 비제네릭 코드는 불필요하게 타입 변환을 하기 때문에 프로그램 성능에 악영향을 미친다. List list = new ArrayList(); list.add("hello"); String str = (String) list.get(0); // 타입 변환이 필요 List list2 ..

Back/Spring Java 2019.11.25
반응형