原创者:文思
Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目。
SpringBoot精要:
1自动配置auto-configuration: 针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关默认配置,进一步请自己理解
2起步依赖starters:告诉Spring Boot需要什么功能,它就能引入需要的starter库,进一步请自己理解
3命令行界面cli: 这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建,或许不常用
4Actuator:让你能够深入运行中的Spring Boot应用程序,对应用系统的自省和监控的集成功能。
以上是Spring Boot有四大神器。
环境要求:
目前Spring Boot正式版为1.5.1.RELEASE默认情况下,Spring Boot
1.5.1.RELEASE需要Java 7和Spring Framework
4.3.6.RELEASE或更高版本。推荐Java 8
极速入门:
传统spring mvc开发一个web项目:
Maven构建文件及spring,spring
mvc,servlet api,jdbc依赖类
Web.xml配置
Spring.xml springMvc.xml配置
Tomcat
Contoller类,只有contoller类和业务具体相关,其它都是配置及开发环境搭建、准备。
使用spring boot:
推荐Spring Initializr,它从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目
下载项目压缩包,导入到你的工程
项目里面基本没有代码,除了几个空目录外,还包含如下几样东西。
·pom.xml:Maven构建说明文件。
·Chapter1Application.java:一个带有main()方法的类,用于启动应用程序(关键)。
·Chapter1ApplicationTests.java:一个空的Junit测试类,它加载了一个使用Spring Boot字典配置功能的Spring应用程序上下文。
application.properties:一个空的properties文件,你可以根据需要添加配置属性。
解析pom.xml
这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。查看C:\Users\goodluck\.m2\repository\org\springframework\boot\spring-boot-parent\1.5.4.RELEASE\spring-boot-parent-1.5.4.RELEASE.pom:
relativePath是相对路径的意思,再打开引用文件spring-boot-dependencies-1.5.1.RELEASE.pom:
如果你不想使用某个依赖默认的版本,您还可以通过覆盖自己的项目中的属性来覆盖各个依赖项,例如,要升级到另一个Spring
Data版本系列,要升级mysql版本,不想使用servletr-api3.1版本,都可以在pom.xml中更换,如:
并不是每个人都喜欢继承自spring-boot-starter-parent POM。您可能有您需要使用的自己的公司标准parent,或者您可能更喜欢显式声明所有的Maven配置,再或者有10个、20个甚至更多模块继承自同一个模块。要知道,Maven的继承和Java的继承一样,是无法实现多重继承的,如果那么按照我们之前的做法,这个父模块的dependencyManagement会包含大量的依赖。如果你想把这些依赖分类以更清晰的管理,那就不可能了,import scope依赖能解决这个问题如果不想使用spring-boot-starter-parent,可以通过使用scope = import依赖关系来保持依赖关系管理。步骤:
1把dependencyManagement放到单独的专门用来管理依赖的pom中,比如叫base-parent1
2通过非继承的方式来引入这段依赖管理配置,需要使用依赖的模块中通过import scope依赖,就可以引入dependencyManagement
以我们的项目为例,在我们的项目demo中不使用starter-parent的话,在pom.xml中:
该设置不允许您使用如上所述的属性(properties)覆盖各个依赖项,要实现相同的结果,您需要在spring-boot-dependencies项之前的项目的dependencyManagement中添加一个配置,例如,要升级到另一个Spring Data版本系列,您可以将以下内容添加到pom.xml中:
这样配置的话,自己的项目里面就不需要继承SpringBoot的module了,而可以继承自己项目的module了。
---------------------------------------------------------------------------------------------------------------------------------------------------
起步依赖 spring-boot-starter-xx
Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。
比如我们之前要实现web功能,引入了spring-boot-starter-web这个起步依赖。我们来看看spring-boot-starter-web到底依赖了哪些,如图:
好多好多,看着是不是很熟悉,所以Spring Boot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖。起步依赖的命名都暗示了它们提供的某种或者某类功能。
上面的配置就是Spring Boot Maven插件,Spring Boot Maven可以把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR添加一个描述文件,其中的内容能让你用java -jar来运行应用程序,在main方法中即可运行。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
应用入口类
@RestController注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出
有三种启动方式:
run as -> java applicion或者run as -> spring boot app 或者在Boot Dashbord中debug
使用命令 mvn spring-boot:run”
运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令
打开浏览器访问:
上集讲解完毕,请关注下集源码剖析。
网友评论