前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot的@Configuration和自动配置有什么区别?

Spring Boot的@Configuration和自动配置有什么区别?

作者头像
lyb-geek
发布2018-10-24 09:50:43
15K1
发布2018-10-24 09:50:43
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路

我们都知道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是什么意思?如果不是自动配置,我们需要手工配置如下:

代码语言:javascript
复制
<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/todo-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

当我们使用Hibernate / JPA时,我们还需要配置数据源,实体管理器工厂,事务管理器等。 使用自动配置以后,就不需要手工配置了。 @Configuration:有自动导入就有属于自动导出,需要配合该类中方法的@bean,这就相当于一个xml配置:

代码语言:javascript
复制
<beans>
 <bean id="b" class="springsimple.B"/>
 <bean id="a" class="springsimple.A"/>
</beans>

@bean等于一行bean配置,整个 Xml配置文件等于@Configuration注释的类,spring已经从xml配置为主模式转变到类注释为主的代码模式,估计以后走向函数式方式。 上面这份配置中的A和B类型如果被其他地方需要,比如在其他某处有:

代码语言:javascript
复制
public class C{
   @Autowire
    private A a;

}

那么在C类就可以使用你提供的A类型了,所以说是导出作用,提供bean源。 @ComponentScan:扫描所有使用@Component 的类,不管自动导入还是导出,首先需要告诉spring boot到哪里去找导入导出的原料。 @SpringBootApplication注解相当于使用@Configuration,@EnableAutoConfiguration以及@ComponentScan 与他们的默认属性。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档