토비의 스프링 초난감 Dao

토비의 스피링 초난감 Dao 초난감 Dao Dao 란 데이터 엑세스 오브젝트이다. 데이터를 조회 하거나 조작하는 기능을 말한다. 우리는 흔히 쓰는 자바빈 규약에 따른 오브젝트이다. public class User { String id; String name; String password; public User() { } public User(String id, String name, String password) { this.id = id; this.name = name; this.password = password; } public String getId() { return id; } public void setId(String id) { this.id =.. Read More

spring security 권한 관리

이번에 security의 동적 권한?에 대해 알아보자. 권한 관리를 정적으로 하지 않고 db에서 권한을 관리하는 거다. 예전에 시큐리티를 처음 했을때 낑낑거리던 그때가 생각난다. 시큐리티가 좋긴 하지만 어렵다. 아무튼 한번 보자. 물론 내가 틀릴 수도 있다. 대충 설계는 위와 같다.(hierarchy 구조는 일단 뺏다. 하드코딩) Authorities는 매핑 테이블이다. User와 role을 매핑 시킨다. 한 user가 여러개의 롤을 가질수 있으며 롤 역시 여러개의 유저에 할당 할 수 있다. RoleResouce도 마찬가지다. Resouces는 실제 url 정보를 가지고.. Read More

@Lazy 와 @Primary

이번에는 Lazy와 Primary에대해 알아보자 Lazy는 말 그대로 게으른 걸 뜻한다. 코드로 확인하자 public class BeanClass { } 위와 같은 코드가 있다고 가정하자 그리고 빈으로 등록하자 @Bean public BeanClass beanClass(){ System.out.println(“register bean”); return new BeanClass(); } 그런후에 테스트를 해보자. @Test public void lazyTest(){ System.out.println(“get bean before”); BeanClass bean = applicationContext.getBean(BeanClass.class); System.out.println(bean); } 그럼 결과는 당연히 register bean 부터 출력 될 것이다. 이번엔 Lazy어노테이션을 써보자 @Bean @Lazy public BeanClass beanClass(){ System.out.println(“register bean”);.. Read More