Spring/스프링 입문
-
[김영한 스프링] 19. AOPSpring/스프링 입문 2023. 4. 1. 23:42
시간 측정 로직을 추가할 곳이 많으면 많을수록 유지보수 불가능 package hello.hellospring.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; @Aspect @Component public class TimeTraceAop { @Around("execution(* hello.hellospring..*(..))") public Object execute(ProceedingJoinPoint joinPoint) thr..
-
[김영한 스프링] 18. 스프링 데이터 JPASpring/스프링 입문 2023. 4. 1. 22:12
package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface SpringDataJpaMemberRepository extends JpaRepository, MemberRepository { @Override Optional findByName(String name); } hello.hellospring/repository/SpringDataJpaMemberRepository 생성 JpaRepository를 받고 있으면 구현체를 자동으로 만들..
-
[김영한 스프링] 17. JPASpring/스프링 입문 2023. 3. 31. 00:09
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 추가 후 오른쪽 코끼리 클릭 spring.jpa.show-sql=true : jpa가 실행하는 sql을 볼 수 있음 spring.jpa.hibernate.ddl-auto=none : 자동으로 테이블을 만들어 주는 기능 끔 @Entity 추가함으로써 jpa가 관리하는 entity가 됨 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - pk 생성을 자동으로 해줌 package hello.hellospring.repository; import hello.hellospring.domain.Member; import javax.pers..
-
[김영한 스프링] 16. 스프링 JdbcTemplateSpring/스프링 입문 2023. 3. 30. 22:05
package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.SimpleJdbcInsert; import javax.sql.DataSource; import java.sql.ResultSet; import java.sql.SQLException; im..
-
[김영한 스프링] 15. 스프링 통합 테스트Spring/스프링 입문 2023. 3. 30. 00:37
test의 MemberServiceTest를 복붙해서 클래스명을 MemberServiceIntegrationTest로 변경 '회원가입'과 '중복_회원_예외'만 남기고 코드 삭제 @SpringBootTest와 @Autowired 추가 데이터 삭제 회원가입만 실행 정상적으로 데이터 입력됨 한번 더 실행하면 에러 발생함 회원가입에서 "String"을 입력시키는데 이미 데이터베이스에 String이 들어있으니 에러발생 @Transactional을 추가 테스트가 실행 되면서 데이터를 insert하더라도 테스트가 끝나면 db 롤백함 테스트 실행하고 데이터 지우고 테스트 실행하고 데이터 지우고 하는 과정 없이 바로바로 테스트 가능함
-
[김영한 스프링] 14. JDBCSpring/스프링 입문 2023. 3. 29. 23:37
implementation 'org.springframework.boot:spring-boot-starter-jdbc' - java는 db와 연결하려면 jdbc가 필요함 runtimeOnly 'com.h2database:h2' - db와 연결할때 데이터베이스가 제공하는 클라이언트가 필요함 spring.datasource.url= jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa 위 3줄 입력 application.properties에 입력한 코드에서 import에러가 발생하기 때문에 build.gradle에서 오른쪽의 코끼리 모양 클릭 package hell..
-
[김영한 스프링] 13. H2 데이터베이스 설치Spring/스프링 입문 2023. 3. 18. 00:27
h2홈페이지에서 All Platforms 설치 윈도우는 h2/bin/h2.bat 실행 최초 연결 시 JDBC URL을 jdbc:h2:~/test로 설정하고 연결 ※ 연결 시 에러가 발생한다면 컴퓨터 재실행 후 다시 연결 시도 위 사진처럼 뜨면 성공 test.mv.db 생성됨 다시 연결 할때는 JDBC URL을 jdbc:h2:tcp://localhost/~/test로 설정하고 연결 member 테이블 생성 데이터 insert sql/ddl.sql 생성 sql 관리차원 출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8 [무료] ..
-
[김영한 스프링] 12. 회원 웹 기능 - 조회Spring/스프링 입문 2023. 3. 17. 22:52
@GetMapping("/members") public String list(Model model) { List members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } MemberController에 list 추가 # 이름 resources/templates/members/memberList.html 생성 초기에는 회원 목록이 없음 spring1, spring2 등록 spring1, spring2 조회 가능 ※ 메모리에 데이터가 있기 때문에 서버를 내렸다가 다시 시작하면 데이터 없어짐 출처 : https://www.inflearn.com/course/%EC%8A%A..