본문 바로가기

Java190

JPA, 스프링 데이터 JPA jpa는 모든 데이터 변경이 transaction 내에서 실행되어야 함. service 클래스에 @Transactional 부착. Spring Data JPA는 JpaRepository를 상속하는 인터페이스의 구현체를 만들어서 등록해줌. public interface SpringDataJpaMemberRepository extends JpaRepository, MemberRepository { @Override Optional findByName(String name); } @Configuration public class SpringConfig { private final MemberRepository memberRepository; @Autowired public SpringConfig(MemberR.. 2023. 9. 18.
스프링 장점 스프링은 인터페이스의 다형성... 객체 지향의 다형성 개념을 활용해서 스프링의 DI(Dependencies Injection)을 사용하면 기존코드를 전혀 손대지 않고, 설정만으로 구현 클래스를 변경할 수 있다. (기능을 완전히 변경해도 기존 애플리케이션 실제 동작 코드를 변경할 필요 없이 어셈블리하는 코드만 수정하면 됨) 스프링 빈으로 등록되어 있는 경우 생성자주입을 받을 클래스의 생성자가 1개일때는 @Autowired 생략이 가능하다. public class JdbcTemplateMemberRepository implements MemberRepository{ private final JdbcTemplate jdbcTemplate; //생성자가 하나일때는 @Autowired 생략 가능 public Jd.. 2023. 9. 18.
thymeleaf 문법 th:each java의 forEach와 같은 역할임. 2023. 9. 16.
Spring Bean Spring Bean 1번째 방법: 컴포넌트 스캔 @SpringBootApplication이 붙어있는 클래스가 위치한 패키지 및 하위 패키지에서 @Controller,@Service, @Repository @Component 어노테이션 사용 시 자동으로 컴포넌트 스캔. 2번째 방법: 자바코드로 직접 작성 @Configuration public class SpringConfig { @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } }메인.. 2023. 9. 16.
Optional https://velog.io/@injoon2019/%EC%9E%90%EB%B0%94-OptionalT%EC%99%80-OptionalInt 2023. 9. 15.
Test code 작성 import static org.assertj.core.api.Assertions.*;assertj : 값의 비교를 도와줌. 예제) assertThat(member).isEqualTo(result);@Test public void save(){ Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); assertThat(member).isEqualTo(result); }예제2) - 에러나는 경우 @Test public void findByName(){ Member member1 = new Member(); memb.. 2023. 9. 15.