对于Spring和SpringBoot
到底有什么区别,我听到了很多答案,刚开始迈入学习
的我当时也是一头雾水,随着经验的积累、我慢慢理解了这两个框架到底有什么区别,相信对于用了
很久的同学来说,还不是很理解
到底和
有什么区别,看完文章中的比较,或许你有了不同的答案和看法!
什么是Spring
作为Java开发人员,大家都都不陌生,简而言之,框架为开发应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和开箱即用的模块,如:
SpringJDBC、SpringMVC、SpringSecurity、SpringAOP、SpringORM、SpringTest
,这些模块缩短应用程序的开发时间,提高了应用开发的效率例如,在
JavaWeb开发的早期阶段,我们需要编写大量的代码来将记录插入到数据库中。但是通过使用
SpringJDBC模块的JDBCTemplate,我们可以将操作简化为几行代码。
什么是SpringBoot
用微课学Java开发基础唐亮王洋编达内教育京东查看已下架基本上是框架的扩展,它消除了设置应用程序所需的XML配置,为更快,更高效的开发生态系统铺平了道路。
中的一些特征:
1、创建独立的应用。
2、嵌入式Tomcat、Jetty、Undertow容器(无需部署war文件)。
3、提供的starters简化构建配置
4、尽可能自动配置spring应用。
5、提供生产指标,例如指标、健壮检查和外部化配置6、完全没有代码生成和XML配置要求
从配置分析
Maven依赖
首先,让我们看一下使用Spring创建Web应用程序所需的最小依赖项
dependency
groupIdorg.springframework/groupId
artifactIdspring-web/artifactId
version5.1.0.RELEASE/version
/dependency
artifactIdspring-webmvc/artifactId
与Spring不同,SpringBoot只需要一个依赖项来启动和运行Web应用程序:
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-web/artifactId
version2.0.6.RELEASE/version
在进行构建期间,所有其他依赖项将自动添加到项目中。
另一个很好的例子就是测试库。我们通常使用
SpringTest,JUnitHamcrestMockito库。在项目中,我们应该将所有这些库添加为依赖项。但是在SpringBoot中,我们只需要添加spring-boot-starter-test
依赖项来自动包含这些库。
SpringBoot为不同的Spring模块提供了许多依赖项。一些最常用的是:
spring-boot-starter-data-jpa
spring-boot-starter-security
spring-boot-starter-web
spring-boot-starter-thymeleaf
有关starter的完整列表,请查看Spring文档。
MVC配置
让我们来看一下
需要定义调度程序servlet,映射和其他支持配置。我们可以使用web.xml
文件或Initializer类来完成此操作:
publicclassMyWebAppInitializerimplementsWebApplicationInitializer{
OverridepublicvoidonStartup(ServletContextcontainer){
AnnotationConfigWebApplicationContextcontext=newAnnotationConfigWebApplicationContext();
context.setConfigLocation(