SPRING 썸네일형 리스트형 [스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 회원 도메인 개발] 회원 리포지토리 개발 회원 기능 -회원 등록 -회원 조회상품 기능 -상품 등록 -상품 수정-상품 조회주문 기능-상품 주문-주문 내역 조회 -주문 취소개발 순서: 서비스, 리포지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증, 마지막에 웹 계층 적용@Repository // 스프링 컨테이너에 이 클래스가 데이터 리포지토리 역할을 한다고 표시public class MemberRepository { @PersistenceContext // JPA 엔티티 매니저를 자동으로 주입받기 위한 어노테이션 private EntityManager em; // 엔티티 매니저 객체 선언, 데이터베이스 조작을 담당 public void save(Member member) { em.persist(member); //.. 더보기 [스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 도메인 분석 설계] 엔티티 클래스 개발 @Entity // 이 클래스를 데이터베이스의 엔티티로 선언@Getter // Lombok 라이브러리를 사용하여 모든 필드의 getter 메서드 자동 생성@Setter // Lombok 라이브러리를 사용하여 모든 필드의 setter 메서드 자동 생성public class Member { // 회원을 나타내는 클래스 @Id // 이 필드가 테이블의 기본 키임을 선언 @GeneratedValue // 기본 키 값이 데이터베이스에 의해 자동으로 생성되어야 함을 선언 @Column(name = "member_id") // 데이터베이스의 컬럼 이름을 "member_id"로 지정 private Long id; // 회원 식별자 private String name; // 회원의 이름 .. 더보기 [스프링| 스프링 핵심 원리 | 기본편 | 빈 생명주기 콜백] 인터페이스 InitializingBean, DisposableBean / 빈 등록 초기화, 소멸 메서드 지정 / @PostConstruct, @PreDestroy public class NetworkClient implements InitializingBean, DisposableBean { // 스프링의 빈 생명주기를 활용하여 초기화 및 소멸 메서드를 정의하는 클래스 private String url; // 네트워크 연결을 위한 URL 저장 변수 public NetworkClient() { // 클래스 생성자 System.out.println("생성자 호출, url = " + url); // 생성자 호출 시 url 초기값(null)을 출력 connect(); // 네트워크 연결 시도 call("초기화 연결 메시지"); // 초기 메시지를 전송 } public void setUrl(String url) {.. 더보기 [스프링| 스프링 핵심 원리 | 기본편 | 빈 생명주기 콜백] 빈 생명주기 콜백 시작 public class NetworkClient { // 네트워크 클라이언트를 위한 클래스 선언 private String url; // 네트워크 연결을 위한 URL 주소를 저장하는 변수 public NetworkClient() { // 클래스의 생성자 System.out.println("생성자 호출, url = " + url); // 생성자 호출 시 URL 상태를 출력 connect(); // 네트워크 연결 메소드 호출 call("초기화 연결 메시지"); // 초기 메시지 전송을 위한 메소드 호출 } public void setUrl(String url) { // URL을 설정하는 메소드 this.url = url; // 인스턴스 .. 더보기 [스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 도메인 분석 설계] 도메인 모델과 테이블 설계 더보기 [스프링| 스프링 핵심 원리 | 기본편 | 의존관계 자동 주입] 조회한 빈이 모두 필요할 때 List, Map / 수동 빈 public class AllBeanTest { @Test void findAllBean() { // ApplicationContext를 생성하고, AutoAppConfig와 DiscountService 클래스를 기반으로 Spring 컨테이너를 설정합니다. ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); // 컨테이너에서 DiscountService 타입의 빈을 가져옵니다. DiscountService discountService = ac.getBean(DiscountService.class); .. 더보기 [스프링| 스프링 핵심 원리 | 기본편 | 의존관계 자동 주입] 조회 빈이 2개이상 - 문제 @Primary 사용`@Primary` 는 우선순위를 정하는 방법이다. @Autowired 시에 여러 빈이 매칭되면 `@Primary` 가 우선권을 가진다. @Primary, @Qualifier 활용코드에서 자주 사용하는 메인 데이터베이스의 커넥션을 획득하는 스프링 빈이 있고, 코드에서 특별한 기능으로 가끔 사용하는 서브 데이터베이스의 커넥션을 획득하는 스프링 빈이 있다고 생각해보자. 메인 데이터베이스의 커넥션을 획득하 는 스프링 빈은 `@Primary` 를 적용해서 조회하는 곳에서 `@Qualifier` 지정 없이 편리하게 조회하고, 서브 데이터베 이스 커넥션 빈을 획득할 때는 `@Qualifier` 를 지정해서 명시적으로 획득 하는 방식으로 사용하면 코드를 깔끔하게 유지할 수 있다. 물론 이때 메인 .. 더보기 [스프링| 스프링 핵심 원리 | 기본편 | 의존관계 자동 주입] 롬복과 최신 트랜드 @Getter@Getter 애노테이션은 클래스의 필드에 대한 getter 메소드를 자동으로 생성해줍니다. 클래스 레벨이나 필드 레벨에 적용할 수 있으며, 특정 필드에만 적용하고 싶다면 해당 필드에만 애노테이션을 붙일 수 있습니다.import lombok.Getter;@Getterpublic class UserData { private String name; private int age;}public String getName() { return this.name;}public int getAge() { return this.age;}@Setter@Setter 애노테이션은 클래스의 필드에 대한 setter 메소드를 자동으로 생성해줍니다. 이 애노테이션 역시 클래스 전체 또는 특정 필드.. 더보기 이전 1 2 3 4 5 6 ··· 10 다음