포스트

Spring-Boot-Memo

Spring-Boot-Memo

참고 : 코딩레시피 - ‘스프링부트 회원프로젝트’
참고 : 어라운드 허브 스튜디오 - Around Hub Studio, ‘스프링 부트 (Spring Boot) 강의’
참고 : 개발자 유미 - Around Hub Studio, ‘스프링 시큐리티’
참고 : Peony의 기록 창고 - ‘스프링부트와 aws로 혼자 구현하는 웹서비스’

💫 QR

참고 : 내가 보려고 만든 개발 (Tech) blog - ‘[SpringBoot] QR코드 생성 & Test(링크이동) - zxing’

💫 Cannot resolve symbol ‘log’

Class에 @Slf4j 달아줘서 해결

💫 Whitelabel Error Page

index.html 만들어서 해결,
Class에 @RestController, @RequiredArgsConstructor 달아주니까 해결

💫 인텔리제이 자동완성

soutm : System.out.println("className.methodName = " + param);
soutp : System.out.println("param = " + param);
Alt + Enter : 변수 만들어 담기

💫 [MySql] SQL Error [1064] [42000]: You have an error in your SQL syntax

말그대로 문법에 문제가 있다는 것.

💫 RestController

@RestController는 뷰페이지 리턴이 안된다.

💫 Thymeleaf

Thymeleaf

🫧 Thymeleaf HTML에서 Security 정보 가져오기

1
2
3
4
<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<p th:text="${#authentication.name}"></p>
<p th:text="${#authentication.authorities}"></p>
<p th:text="${#authentication.authenticated}"></p>

참고 : cornarong의 블로그 - ‘타임리프로 화면단에서 사용자 시큐리티 정보 가져오기’

🫧 Thymeleaf 조건문

1
2
3
<div th:if="${#lists.isEmpty(ticketList)}">
 <p>대기중인 티켓이 없습니다.</p>
</div>

참고 : ‘[Springboot] Thymeleaf each문, if문(else if문, 조건이 여러 개인 if문)’

💫 MariaDB 비밀번호 초기화

bin 디렉토리에서 mysql 말구 .\mysql

💫 HTML에서 바로 Style 적용

<style> 태그 안에 넣어주면 된다.

💫 FK 지정

참고 : Velog - ‘JPA로 엔티티, 테이블 생성하기 / PK, FK 연결하기’

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class B {
 @Id @GeneratedValue
 @Column(name = "B_ID")
 private Long id;
 
 // @Column(name = "A_ID")
 // private Long aId;
 
 @ManyToOne
 @JoinColumn(name = "A_ID")
 private A a;
}

public class A {
 @Id @GeneratedValue
 @Column(name = "A_ID")
 private Long id;
}

💫 TransientPropertyValueException~

FK로 사용되는 객체가 저장되지 않아서.
오류를 해결해주기 위해서는 영속성 전이를 위해 cascade type을 지정.
@ManyToOne(cascade = CascadeType.ALL)
https://velog.io/@jummi10/resolve-TransientPropertyValueException

💫 Session을 이용한 로그인 구현

https://chb2005.tistory.com/175
https://github.com/Changbum97/Springboot-Login-Study

💫 패키지 구조 (계층형 구조, 도메인형 구조)

패키지 구조 (계층형 구조, 도메인형 구조)
https://youngsuk-dev.tistory.com/21

💫 redirect

Controller에서 return 값을 redirect:/로 하면
/로 리다이렉트 된다.

💫 Enum

참고 : ‘[Spring] Enum 타입을 DB에 저장하기’

💫 배포, 응답없음


보안 그룹-인바운드 규칙 편집하여 포트번호 8080 열기
참고 : s0nnyday.log - ‘[AWS EC2] 오류 - EC2, Jar 실행 후 웹 브라우저에 요청 보내도 응답x’

💫 -Dspring, .yml 환경설정 적용하기


참고 : monkeyDugi - ‘Spring Boot -Dspring으로 환경설정 파일 적용하기’

💫 Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to resolve name [org.hibernate.dialect.MySQL5InnoDBDialect] as strategy [org.hibernate.dialect.Dialect]


1
2
3
4
spring:
  jpa:
    # database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    database-platform: org.hibernate.dialect.MySQL8Dialect

참고 : yesue2.log - ‘Failed to initialize JPA EntityManagerFactory: Unable to create requested service […] due to: Unable to resolve name [org.hibernate.dialect.MySQL5InnoDBDialect] as strategy […] 에러’

💫 Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured


DB 연결 시 필요한 정보가 없거나 잘못된 경우 발생하는 에러
properties, yml 파일에 DB 정보를 제대로 입력하거나, DB가 제대로 구성되었는지 확인

[참고 : hoon’s bLog - ‘Spring ErrorFailed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.’](https://psip31.tistory.com/139)

💫 java.sql.SQLSyntaxErrorException: Unknown column ‘t1_0.~’ in ‘field list’ using Hibernate


DB 연결 시 필요한 정보가 없거나 잘못된 경우 발생하는 에러
불러오려는 DB/테이블이 유효한지, 제대로 구성되었는지 확인

참고 : StackOverflow - ‘java.sql.SQLSyntaxErrorException: Unknown column ‘t1_0.division’ in ‘field list’ using Hibernate’

💫 org.hibernate.HibernateException: The database returned no natively generated identity value


해당 Column이 Auto Increment가 아닌 경우 발생하는 에러

참고 : StackOverflow - ‘org.hibernate.HibernateException: The database returned no natively generated identity value’

💫 SpringSecurity 로그아웃


참고 : 돔돔이블로그 - ‘로그아웃기능 만들기 (+자동로그아웃)’

💫 Linux 명령어


  • cd
    • cd / : 루트 (최상위)
    • cd .. : 상위
    • cd ~ : 홈
    • cd - : 이전
  • ls

  • touch : 파일 생성

  • vim
    • ESC : 명령 모드
    • i, Insert, a, A : 입력 모드
      • :w : 저장
      • :q : 종료
      • :wq : 저장 후 종료
      • :q! : 강제 종료
  • rmdir : 디렉토리 삭제
    • -r : 하위 디렉토리까지 삭제
    • -f : 강제 삭제
    • rm -rf : 강제 삭제
  • mv : 파일 이동
    • mv 파일명 이동할경로 : 파일 이동
  • cp : 파일 복사
    • cp 파일명 복사할경로 : 파일 복사
  • tail : 파일 끝부분 출력
    • -f : 실시간 출력
    • -n : 뒤에서부터 n개 출력
    • tail -f 파일명 : 파일 실시간 출력

💫 TODO

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.