Spring

    컴포넌트 스캔과 의존관계 자동 주입 시작하기

    구성정보를 지정하는 AutoAppConfig.java 클래스를 만든다. @Configuration @ComponentScan( basePackages = "hello.core.member", // 탐색할 패키지의 시작 위치를 지정한다. basePackageClasses = AutoAppConfig.class, //AutoAppConfig가 위치한 패키지를 basePackage 삼는다. excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) // 보통 실무에서는 @Configuration을 따로 제외하지 않지만, 기존 예제코드 최대한 남기기 위해 사용함. // 컴포넌트 스캔을 사용하면..

    [AppConfig] 앱의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고, 연결하는 기획자.

    애플리케이션을 하나의 공연이라고 생각해보자. 연극을 하는 배우가 직접 상대배우를 섭외하고 무대 진행 순서를 짠다면, 그 배우는 너무 많을 역할을 맡고 있다는 생각이 들 것이다. 이런 불상사를 방지하기 위해서는 유능한 공연 기획자가 필요하다. 객체지향의 SOLID원칙을 지키기 위해, 스프링에서는 AppConfig라는 설정클래스를 기획자 역할로 두어, 애플리케이션이 어떻게 동작해야 할지 전체 구성을 책임진다. 애플리케이션의 실제 동작에 필요한 구현 객체를 생성하는 기획자, AppConfig @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRep..

    스프링부트가 처음 실행될 때. @SpringBootApplication에 관하여.

    스프링부트를 실행하면 맨 처음 [Artifact명]Application으로 명명된 메인 어플리케이션 클래스의 메인메소드가 실행된다. 메인 어플리케이션을 살펴보면 다음과 같이 되어있다. @SpringBootApplication public class CoreApplication { public static void main(String[] args) { SpringApplication.run(CoreApplication.class, args); } } 위의 코드에서 @SpringBootApplication 어노테이션을 살펴보자. 해당 어노테이션은 아래의 3가지 어노테이션을 모두 포함하고 있는 어노테이션이다. @SpringBootConfiguration @EnableAutoConfiguration @Comp..

    [프로젝트 생성] start.spring.io를 통해 프로젝트 생성하는 법

    https://start.spring.io/ 에서 초기 프로젝트를 취향에 맞게 구성한다. 이렇게 받은 압축파일을 풀고, IDE에서 해당 소스파일을 불러온다. intllij 기준으로 open -> 폴더 내 bulid.gradle 선택하여 설정파일을 불러옴. 맨 처음 프로젝트를 열면 그레이들이 라이브러리를 전부 다운로드 받으므로 로딩에 어느정도 시간이 소요된다. 프로젝트가 잘 불러와졌는지 main - java - [group.artifact명] - [artifact]Application 을 실행하여 확인해보자! 추가적으로 Lombok 사용을 위해 settings - Annotation Processors 에서 Enable annotation processiong에 체크를 해준다.