2021-07-29

0729 샘플데이터 만들기

 1. 만드는 중에 @Transactional을 안걸었더니.

너 entitymanager 쓰는데 왜 transaction안해?? 하고 스프링이 에러 뿜뿜. 

엔티티매니저와 트랜잭션은 정확히 어떤 관계인가...

스프링 data JPA를 쓰면. 트랜잭션 관리를 알아서 해주던데 ( 뭐 Modifying이런식으로 추상화해놓긴 하지만. ) 

으음~~~뭔가 막 확!! 와닿지가 않네.

기본적으로 entityManager는 작업 단위로 생성되고 close되는 걸로 안다.

트랜잭션 단위일수도 있고.. 여러 트랜잭션을 처리할 수 도 있다.

하나의 비지니스 로직의 완성단위 = entityManager의 단위

라고 이해해도 되는걸까!!?!!


2. @PostConstruct

강의 듣던중에 또 새로운 어노테이션 알게되었다.

스프링 빈이 initialized된 후, 실행되도록 보장해준다

초기화실행하고자 하는 메소드 위에 붙이기만 하면 됨!

스프링 빈이 등록 된 후에 실행되기 때문에 - 주입할 빈이 null이 되는 오류를 방지할 수 있다고 한다. 

( 왠지 이거 - commandliner랑 역할이 좀 비슷한 것 같은?? ) 


3. https://www.baeldung.com/running-setup-logic-on-startup-in-spring

<<오오. 참고가 되었다.

스프링은 많은 초기화메서드를 제공한다!!

commandLinerRunner도, @PostContstructor도 그중하나인 것이다.

근데 @PostConstructor가 커맨드라인러너보다 빨리 실행됨.


4. 실행하는 중에 - @Component어노테이션을 안붙였더니. 스프링에서- 그런 애는 스프링빈에 등록되어있지 않아서 주입할수가 없어! 라는 에러가 났었음. 

궁금해져서 @Component와 @Bean어노테이션의 차이도 찾아봄.

@Component는 개발자가 관리하는 객체, @Bean은 그 외의 외부 객체들 (이를테면 - PasswordEncoder같이. 내가 만들지 않았지만 활용하는 객체들) 에 붙인다고 한다!

댓글 없음:

댓글 쓰기

0328 fdisk, mkfs, mount, fstab

 1. 하드디스크를 붙인다. 2. fdisk -l로 하드디스크를 확인한다.  - interactiive한 커맨드모드 사용하여 (m) 붙인 하드디스크의 파티셔닝을 한다.  - 마지막에 w를 해야 실제로 반영이 된다.  3. mkfs를 하여 어떤 파일시스...