JPA와 Security 연동 이전의 문제점 매번 유저를 추가하는 일이 생길 경우 코드를 수정해야 한다. 수정, 삭제도 마찬가지로 코드를 수정해야 한다. -> 위와 같은 문제를 DB를 연동하여 유저 정보를 관리할 수 있도록 수정해보겠습니다. (JPA를 사용하겠습니다.) 개선 JPA 설정 dependency 추가 build.gradle dependencies { ... // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // H2 runtimeOnly 'com.h2database:h2' ... } class 생성 Account @Entity @Getter @Setter public class Account { @Id @..
Inmemory User 현재 기본으로 생성되는 유저와 패스워드 log를 확인해보면 UserDeatilsServiceAutoConfiguration에서 찍히는걸 확인할 수 있습니다. UserDetailsServiceAutoConfiguration.java User 정보는 SecurityProperties에서 가져오며 name, password, role을 설정 할 수 있습니다. yml 수정하여 기본 생성되는 유저 정보 변경하기 http://localhost:8080/login 에 접속하여 properties에 작성한 ID, Password를 입력해주면 기존처럼 접속이 가능합니다.. 문제점 유저 정보가 1개밖에 없다. 소스를 보면 어떤 유저정보가 있는지 확인할 수 있다. -> 그러므로 유저정보를 prope..
Spring Security Dependency build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' } 인증 가능 사용자 정보 알 수 있다. Security Setting SecurityConfig.java @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authoriz..
안녕하세요. Eetch Join에 대해 포스팅해보겠습니다. WithOut FetchJoin @PersistenceUnit EntityManagerFactory emf; @Test public void fetchJoinNo() throws Exception { em.flush(); // fetch test시 해주는게 좋음 em.clear(); Member member1 = queryFactory .selectFrom(member) .where(member.username.eq("member1")) .fetchOne(); // 1. 회원만 조회 (팀X) boolean loaded = emf.getPersistenceUnitUtil().isLoaded(member1.getTeam()); assertThat(l..
Team A에 속한 회원을 검색한다. @Test public void join() throws Exception { List result = queryFactory .selectFrom(member) .join(member.team, team) // leftJoin(), rightJoin() .where(team.name.eq("TEAM A")) .fetch(); assertThat(result) .extracting("username") .containsExactly("member1", "member2"); } native Query select member0_.member_id as member_i1_1_, member0_.age as age2_1_, member0_.team_id as team_id..
안녕하세요. Querydsl 집합 쿼리에 대해 포스팅해보겠습니다. @Test public void aggregation() throws Exception { List result = queryFactory .select( member.count(), member.age.sum(), member.age.avg(), member.age.max(), member.age.min()) .from(member) .fetch(); Tuple tuple = result.get(0); assertThat(tuple.get(member.count())).isEqualTo(4); assertThat(tuple.get(member.age.sum())).isEqualTo(100); assertThat(tuple.get(memb..
안녕하세요. 오늘은 페이징관련해서 포스팅해보겠습니다. 페이징을 할 땐 정렬을 해줘야한다. @Test public void paging1() throws Exception { List result = queryFactory .selectFrom(member) .orderBy(member.username.desc()) .offset(1) .limit(2) .fetch(); assertThat(result.size()).isEqualTo(2); } offset 으로 시작 지정 (0이 시작) limit 갯수 지정 Native Query select member0_.member_id as member_i1_1_, member0_.age as age2_1_, member0_.team_id as team_id4_1_..
이전 글 더보기 [Querydsl] 1. Querydsl 설정하기 [Querydsl] 2. H2 Database [Querydsl] 3. JPA yml 설정 [Querydsl] 4. 예제용 도메인 생성 [Querydsl] 5. JPQL vs Querydsl 비교 [Querydsl] 6. Querydsl Where절 안녕하세요. Querydsl에서 다양한 결과 조회를 하는 방법을 포스팅해보겠습니다. - 단순 리스트 조회 List fetch = queryFactory .selectFrom(member) .fetch(); - Limit 1 Member member2 = queryFactory .selectFrom(QMember.member) .fetchFirst(); - Paging QueryResults r..
- Total
- Today
- Yesterday
- FastAPI
- 스프링
- java11
- 웹서비스
- spring web
- boot
- like절
- @formula
- howtoinstallnginx
- ResourceHttpReqeustHandler
- ubuntu
- 유사결과
- QueryDSL
- booleanExpression
- Python
- Java
- JPA
- 스프링시큐리티
- mapstruct
- 스프링부트
- 자바
- springboot
- 개발
- ControllerAdvice
- Security
- 스프링부트 시작하기
- Spring
- paawordencoder
- springsecurity
- API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |