스프링 부트는 자동으로 일반적인 설정을 수행하여 많은 빈을 자동으로 등록한다. 이에는 DataSource와 같이 자주 사용되는 빈도 포함된다.
따라서 보통의 경우에는 DataSource를 직접 빈으로 등록할 필요가 없다. 대신에 application.properties나 application.yml 파일을 통해 데이터베이스 연결 정보를 설정하면 스프링 부트가 자동으로 DataSource 빈을 생성하고 등록한다.
반면, 스프링은 수동으로 DataSource를 빈등록 해야 한다. application.properties나 application.yml 파일을 통해 데이터베이스 연결 정보를 설정하고, 매번 DataSource를 빈으로 등록해야 한다.
(매번 DataSource 를 빈으로 등록하면 중복코드 발생하니까 아래와 같이 처음 Application.java에 빈을 등록해두면 중복코드를 없앨 수 있다.)
package kr.co.hanbit.product.management;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import javax.sql.DataSource;
import java.sql.Connection;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public ApplicationRunner runner(DataSource dataSource) {
return args -> {
Connection connection = dataSource.getConnection();
};
}
}