본문 바로가기

SPRING

[스프링| 스프링 핵심 원리 | 기본편 | 의존관계 자동 주입] 생성자 주입을 선택해라! @Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public O.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 의존관계 자동 주입] 다양한 의존관계 주입 방법 @Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public O.. 더보기
[스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 프로젝트 환경설정] JPA와 DB설정, 동작확인 spring: # Spring 프레임워크 관련 전반적인 설정을 시작하는 키 datasource: # 데이터 소스 설정을 정의하는 섹션 url: jdbc:h2:tcp://localhost/~/jpashop # 데이터베이스 연결 URL, 여기서는 H2 데이터베이스를 지정 username: sa # 데이터베이스 접속을 위한 사용자 이름 password: # 데이터베이스 접속을 위한 비밀번호, 비워두면 비밀번호 없음 driver-class-name: org.h2.Driver # JDBC 드라이버 클래스 명 jpa: # JPA (Java Persistence API) 관련 설정 hibernate: # 하이버네이트 관련 설정 ddl-auto: create # 데이터베이스 스키.. 더보기
[스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 프로젝트 환경설정] Veiw 환경 설정, H2 데이터베이스 안녕하세요. 손님" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스thymeleaf 템플릿 엔진thymeleaf 공식 사이트: https://www.thymeleaf.org/스프링 공식 튜토리얼: https://spring.io/guides/gs/serving-web-content/스프링부트 메뉴얼: https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/ boot-features-developing-web-applications.html#boot-features-spring-mvc-template-engines  스프링 부트 thymeleaf viewName 매핑resources:templates/` +{Vie.. 더보기
[스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 프로젝트 환경설정] Spring Web기능: 이 의존성은 웹 애플리케이션을 구축할 수 있도록 지원합니다. RESTful 웹 서비스를 포함한 다양한 웹 기반 애플리케이션을 개발할 때 사용됩니다. Apache Tomcat이 기본 내장 웹 서버로 제공되어, 별도의 웹 서버 설치 없이 쉽게 웹 애플리케이션을 실행시킬 수 있습니다.Thymeleaf기능: Thymeleaf는 서버 사이드에서 HTML을 동적으로 생성하는 모던 템플릿 엔진입니다. 웹 및 독립 환경 모두에서 사용될 수 있으며, 표준 HTML 파일을 템플릿으로 사용하기 때문에 웹 디자이너와 개발자 모두에게 친숙한 작업 환경을 제공합니다. 또한, 웹 브라우저에서 정적 프로토타입을 직접 볼 수 있어 개발 과정이 원활해집니다.Lombok기능: Lombok은 자바 개발을 할 때 반.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 컴포넌트 스캔] 필터, 중복등록과 충돌 package hello.core.scan.filter; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springfra.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 컴포넌트 스캔]컴포넌트 스캔과 의존관께 자동 주입 시작하기 @Configuration// 이 어노테이션은 현재 클래스가 스프링 설정 정보를 제공하는 구성 클래스임을 나타낸다.@ComponentScan( // @ComponentScan 어노테이션은 스프링에게 이 패키지와 하위 패키지에서 @Component 어노테이션이 붙은 모든 클래스를 찾아 스프링 빈으로 등록하도록 지시한다. excludeFilters = @ComponentScan.Filter( // excludeFilters 속성은 특정 조건에 해당하는 컴포넌트를 스캔 대상에서 제외시키는 필터를 설정한다. type = FilterType.ANNOTATION, // FilterType.ANNOTATION은 어노테이션 타입의 필터를 의미하며, 어노테이션이 붙은 클.. 더보기
[스프링| 스프링 핵심 원리 | 기본편 | 싱글톤 컨테이너]@Configuration과 싱글톤 public class ConfigurationSingletonTest { // ConfigurationSingletonTest 클래스 선언 @Test // JUnit 테스트 메서드임을 나타내는 어노테이션 void configurationTest() { // 테스트 메서드 선언 ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); // 스프링 컨텍스트를 초기화하고, AppConfig 클래스를 설정 정보로 사용 MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); // "memb.. 더보기