#db connection(Oracle)
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe
spring.datasource.username=c##jh
spring.datasource.password=1234
# MyBatis
# mapper.xml 위치 지정
mybatis.mapper-locations:classpath:mapper/**/*.xml
# model 프로퍼티 camel case 설정
mybatis.configuration.map-underscore-to-camel-case=false
# 패키지 명을 생략할 수 있도록 alias 설정
mybatis.type-aliases-package=com.atoz_develop.mybatissample.model
# mapper 로그레벨 설정
logging.level.com.atoz_develop.mybatissample.repository=TRACE
@SpringBootApplication 이란?
@SpringBootAplication 어노테이션은 auto-configuration을 담당합니다.
다시 이야기 하자면 @SpringBootAplication 어노테이션으로 인해 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성이 모두 자동으로 설정됩니다.
@SpringBootAplication 어노테이션이 있는 위치부터 설정을 읽어가기 때문에 이 어노테이션을 포함한 클래스는 항상 프로젝트의 최상단에 위치해야만 합니다.
@SpringBootAplication의 내부 구조
@SpringBootAplication의 내부 구조를 간단히 살펴 보면 아래와 같습니다.
@SpringBootApplication을 이용하면 위 코드를 보면 알 수 있듯이 세가지의 어노테이션을 포함하고 있습니다.
@EnableAutoConfiguration
@ComponentScan
@SpringBootConfiguration
이 세가지의 어노테이션이 @SpringBootAplication의 특징인데 아래에서 간단히 설명하겠습니다.
@EnableAutoConfiguration – 설정 자동 등록하기
@EnableAutoConfiguration은 Spring boot의 핵심으로써, 미리 정의되어 있는 Bean들을 가져와서 등록해줍니다.
미리 정의되어 있는 Bean들은 spring-boot-autoconfigure > META-INF > spring.factories에 위치하여 있습니다.
@ComponentScan – 빈 등록하기
스프링에서 관리하는 POJO를 ‘빈(Bean)’이라고 합니다.
@ComponentScan은 현재 패키지 이하에서 아래와 같은 어노테이션이 붙어 있는 클래스들을 찾아서 빈으로 등록하는 역할을 합니다.
@Component
@Configuration
@Repository
@Service
@Controller
@RestController
@SpringBootConfiguration - @Configuration의 용도
@Configuration은 spring 에 빈 팩토리를 위한 오브젝트를 설정을 담당하는 클래스라고 인식 할 수 있도록 알려주는 어노테이션입니다.
@SpringBootConfiguration은 @Configuration의 대안이라고 할 수 있습니다.
@Configuration와 거의 같은 일을 하지만 가장 큰 차이점이라고 하면 @SpringBootConfiguration을 사용하면 구성을 자동으로 찾을 수 있다는 것 입니다. 이것은 단위 또는 통합 테스트에 특히 유용 할 수 있습니다.
출처: https://coooding.tistory.com/33 [아직은 정체성이 없는 블로그]
-1 @Configuration 이란?
현재 클래스가 Spring의 설정 파일임을 알려주는 어노테이션
== Spring이 Java config로 간주한다!
Configuration을 클래스에 적용하고 @Bean을 해당 클래스의 메소드에 적용하면
@Autowired로 빈을 부를 수 있다.
개발자가 생성한 class를 Bean으로 생성 할 때 Single Tone으로 한번만 생성하고
@Component는 Bean을 생성 할 때 java에서 new로 생성하듯이 생성한다.
-2 @EnableAutoConfiguration 이란?
Spring boot 클래스패스 세팅 및 다양한 Bean 추가 등을 시켜주는 어노테이션
어플리케이션에 추가된 설정들을 자동으로 추가해주는 어노테이션
-3 @ComponentScan 이란?
다른 컴포넌트, 서비스, 설정 등을 찾을 수 있게 도와주는 어노테이션
즉 자바 클래스를 스프링 빈이라고 표시하고
스프링의 component-scanning 기술을 통해 ApplicationContext에 빈으로 등록하게 하는 역할
== @Component를 검색하도록 도와준다
@Configuration 클래스도 컴포넌트로서 검색 대상이 된다.