什麼是自動配置spring boot(Boot的Configuration和自動配置有什麼區別)
2023-04-14 21:16:33 1
我們都知道springboot的這個原理@SpringBootApplication = @Configuration @EnableAutoConfiguration @ComponentScan那麼這三個注釋代表什麼意思?@Configuration 和 @EnableAutoConfiguration都有配置,有什麼區別?@EnableAutoConfiguration:啟用Spring Boot的自動配置機制,類似在java代碼中自動import,屬於自動導入。這是告訴Spring Boot根據你添加的jar依賴關係「猜測」你想要如何配置Spring。如果你在pom.xml中配置了依賴spring-boot-starter-web,那麼其jar包會加入到類路徑classpath,spring會自動配置Tomcat和Spring MVC。自動配置spring mvc是什麼意思?如果不是自動配置,我們需要手工配置如下:dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/todo-servlet.xml 1 dispatcher /
當我們使用Hibernate / JPA時,我們還需要配置數據源,實體管理器工廠,事務管理器等。使用自動配置以後,就不需要手工配置了。@Configuration:有自動導入就有屬於自動導出,需要配合該類中方法的@bean,這就相當於一個xml配置: @bean等於一行bean配置,整個Xml配置文件等於@Configuration注釋的類,spring已經從xml配置為主模式轉變到類注釋為主的代碼模式,估計以後走向函數式方式。上面這份配置中的A和B類型如果被其他地方需要,比如在其他某處有:public class C{ @Autowire private A a;}
那麼在C類就可以使用你提供的A類型了,所以說是導出作用,提供bean源。@ComponentScan:掃描所有使用@Component 的類,不管自動導入還是導出,首先需要告訴spring boot到哪裡去找導入導出的原料。@SpringBootApplication註解相當於使用@Configuration,@EnableAutoConfiguration以及@ComponentScan 與他們的默認屬性。,