参考之前springboot及主流框架的集成
可以发现,还是比较容易和其他框架进行整合的,毕竟是spring自家的产物,解耦和集成自然是它们最擅长的,接下来结合之前的使用做一些总结
1.强大的解耦,集成能力,这个上面已经说过了,就不再赘述。
2.零配置(简单配置)
是的springboot完全可以做到零配置,而且这也是它们倡导的。这样的好处是显而易见的,那就是降低了入门的门槛,对于一个新手来说,怎么做配置从来都是一件十分头疼的事,配置越多,对应的学习难度也就越大。那么它是如何做到的呢,下面以比较常用的数据源配置作为比较,以期能够更好理解,
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="" />
<property name="typeAliasesPackage" value="" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactory" />
</bean>
<bean id="myBatisSessionManager" class="com.chemao.loan.common.core.MyBatisSessionManager">
<property name="sessionMap">
<map>
<entry key="default" value-ref="sqlSession" />
</map>
</property>
</bean>
这是一个常见的数据源配置,可以看见我们配置了dataSource,sqlSessionFactory,sqlSession,myBatisSessionManager,事实上我们只配置了dataSource,sqlSessionFactory,另外两个bean是基于前面的配置构造出来的,这么看来后两个配置并不是必须的,那么前两个也可以不配么,目前来看是不行的,因为里面很多是我们自定义的属性值,官方没办法通过默认值去填充,那么是不是没办法了,当然不是,官方没办法默认,但可以约定,比如约定property文件spring.datasource.url这个key对应的属性为数据库连接的url,用户只需要配置这个属性,其他就可以交给官方去处理了,这样也就做到了零配置,或者说简单配置就可以用了。
3.依赖管理
对于开发来说,依赖管理是一件很烦人的事,到了后面有了maven,发现一下子好了很多,但仍然有很多不足,比如依赖的jar包冲突,很多惨痛的事故都是由此引发的,显然有人意识到了这一点,springboot就做了很好的处理,它定义了一个大而全的依赖管理,所有主流开源的依赖都包括在内(当然个人或公司私有的不包括),然后统一版本,这样也就解决了冲突问题
详见
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
4.容器集成
springboot整合了Tomcat,jetty等主流的容器,默认是Tomcat
5.开闭原则
支持扩展,不支持修改,springboot提供了最为通用,或者官方建议的一种配置方式,这种配置方式是不可以修改的。但是有时候官方的并不能很好的满足我们的需要,这个时候重写官方的配置,来实现以下自定义的属性。
以上是一些感悟,谨供参考