Spring Boot(01)——初体验

  • 时间:
  • 浏览:1
  • 来源:大发彩神APP_大发神彩APP官方

(注:本文是基于Spring Boot 2.0.3所写)

Spring Boot的核心配置文件是类根路径下的application.properties文件或application.yml文件。Spring Boot中能够 的内部管理配置信息基本都从这里来,包括前面提到的自动配置的ConfigurationProperties。看下面代码中,类SampleController有一四个 appId属性,其值由test.appId那么一四个 占位符指定。

定义好的<dependencyManagement/>都能够 从artifactId为spring-boot-dependencies的pom.xml中查看,它属于spring-boot-starter-parent的父项目。原应能够 改变依赖项的版本号,都能够 在子项目中重写对应的properties中的版本号。

查看spring-boot-starter-web的pom.xml文件都能够 看后它打包了以下依赖项:

比如我应该 开发一四个 Web项目,在项目的pom.xml文件中加入spring-boot-starter-web的依赖,在项目启动时就会自动的按照SpringMVC的配置为大伙儿儿配置好。这是由Spring boot的autoconfigure模块来实现的,autoconfigure模块中定义了一系列的自动配置类,它们的自动配置规则基本都差太少。比如在classpath下拥有某Class的后后进行自动配置,原应在配置文件中配置了某个属性后进行自动配置,等等。每个自动配置类都使用了@Configuration标注。能够 启用自动配置,能够 在Spring Boot的入口类上打上去@EnableAutoConfiguration注解。

只是 大伙儿儿就都能够 直接在项目中定义Controller,并定义对应的出理 器妙招。

接下来能够 启动项目,项目都能够 按照纯Java项目进行启动,也都能够 打包为war包丢到Tomcat中。以下是直接按照纯Java项目进行启动的妙招。通常建议在项目的根包路径下创建一四个 Class用于启动项目,后后在根包下面通常那么只是 一四个 启动类。比如下面大伙儿儿的Application原应是定义在com.elim.springboot包下面的,则项目在启动后Spring将自动将com.elim.springboot包作为根包进行bean定义扫描,这原应类打上去了@SpringBootApplication。启动类能够 使用@SprintBootApplication注解进行标注,后后在main妙招体中调用SpringApplication的run妙招,后后传递能够 作为配置类的Class作为第一四个 参数,原应有多个只是 的Class,也都能够 传递一四个 数组,第四个参数为启动时传递的参数,通常就直接取main妙招传递的参数,只是 Spring Boot就启动了。@SprintBootApplication上是使用了@EnableAutoConfiguration注解的,太少太少太少太少有下面的代码将启用Spring Boot的自动配置机制。另外@SpringBootApplication上使用了@Configuration@ComponentScan,这就大慨使用@SpringBootApplication标注的类等价于标注了@Configuration@ComponentScan。这允许大伙儿儿在@SpringBootApplication类中定义Spring Bean、进行bean扫描等。

其它的Starter也是例如的,打包了相关的依赖项。

Spring Boot的配置文件其实除了application.properties或application.yml外,根据启动的profile的不同,还都能够 读取带profile后缀的配置文件。比如启动的profile是dev,则都能够 读取application-dev.properties或application-dev.yml文件。

@EnableConfigurationProperties用来定义该自动配置内部管理都能够 使用的配置参数对应的配置类,配置参数对应的配置类上都是使用@ConfigurationProperties指定配置属性对应的前缀,后后配置类上的每一四个 属性打上去对应的配置属性前缀组成一四个 全部的配置文件中的属性名。比如下面的WebMvcProperties指定的属性前缀是spring.mvc,其属性dateFormat将匹配配置文件中的spring.mvc.dateFormat属性值。原应配置类的属性仍然是一四个 对象,则都能够 进行多级嵌套,多个层级之间通过英文的句号进行连接。

启动完成后就都能够 打开浏览器,通过/sample/helloworld访问里边定义的SampleController的sample妙招了。

那么在大伙儿儿的application.properties文件中就都能够 指定那么一四个 占位符并进行赋值。应用应用程序运行时appId的值就将被替换为下面配置的Spring Boot

Spring Boot的理念是一蹶不振 XML配置(当然,原应你想采用XML配置也是都能够 的,后后Spring Boot推荐使用基于Java的配置),采用纯Java配置和properties或yml文件配置,通过提供一系列的Starter都能够 使开发者快速的搭建起一套开发环境。Starter将某一工具相关的依赖整合到了同去,通过依赖一四个 Starter会间接的依赖该Starter相关的所有依赖。使用的Starter在启用了自动配置时是都能够 自识别的,即假如把它们加入到Classpath中,在应用应用程序启动的后后都能够 进行自动的识别和启动。比如想使用Spring Data MongoDB,只需加入spring-boot-starter-data-mongodb依赖,后后通过配置文件配置MongoDB对应的配置信息即可。使用Spring Boot时,通常会使用Maven进行项目管理,后后指定spring-boot-starter-parent为父项目。spring-boot-starter-parent里边接的提供了一点<dependencyManagement/>,将它作为父项目后在项目能够 使用依赖时都能够 忽略版本号的配置,非常的方便。

SpringMVC的自动配置类由DispatcherServletAutoConfiguration定义,其主要源码如下所示。大伙儿儿都能够 看后类里边拥有各种各样的Conditional打头的注解,它们都是用来定义对应的配置生效的条件。

Spring Boot的核心是基于Java配置的Spring的进一步封装,太少太少太少太少有大伙儿儿在它的配置类上都能够 像在使用Java配置类时一样使用,比如打上去@EnableAsync@ImportResource@Import等。当有多个配置类时,Spring Boot也是建议在主配置类上进行引入。