1.初始化的项目结构




springboot覆盖原先页面 springboot配置覆盖_java



2.配置文件


2.1启动引导Spring



springboot覆盖原先页面 springboot配置覆盖_spring boot_02



2.2.配置属性


A.application.properties


文件可以很方便地帮你细粒度地调整Spring Boot的自动配置,只要它存在就会被加载, Spring和应用程序代码都能获取其中的属性。


server.port=8000:设置内置Tomcat的监听端口8000


B.pom.xml



springboot覆盖原先页面 springboot配置覆盖_springboot覆盖原先页面_03



3.启动依赖


3.1 版本


不需要指定依赖的版本号,起步依赖本身的版本是由正在使用的Spring Boot的版本来决定


的,而起步依赖则会决定它们引入的传递依赖的版本。


Maven使用dependency插件的tree获依赖树:$ mvn dependency:tree


3.2 覆盖起步依赖


A.排除传递依赖


在Maven里,可以用<exclusions>元素来排除传递依赖。



springboot覆盖原先页面 springboot配置覆盖_spring_04



B.覆盖传递依赖


Maven总是会用最近的依赖,在项目的构建说明文件里增加的某个依赖,会覆


盖传递依赖引入的另一个依赖。


4.自动配置


Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,


考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。


4.1 JpaRepository


通过扩展JpaRepository, ReadingListRepository直接继承了18个执行常用持久化操作的方法。 JpaRepository是个泛型接口,有两个参数:仓库操作的领域对象类型,及其ID属性的类型。


Spring Data提供了很神奇的魔法,只需定义仓库接口,在应用程序启动后,该接口在运行时会自


动实现。


4.2 条件化配置


Spring 4.0引入条件化配置的新特性。条件化配置允许配置存在于应用程序中,但在满足某些特定条件之前都忽略这个配置。


在Spring里可以很方便地编写你自己的条件,你所要做的就是实现Condition接口,覆盖它的matches()方法。



springboot覆盖原先页面 springboot配置覆盖_spring_05



4.3 spring boot配置


在向应用程序加入Spring Boot时,有个名为spring-boot-autoconfigure的JAR文件,其中包含了


很多配置类。


spring boot自动配置使用了条件化配置,判断classpath里是否有存在的class,如果存在,则加载配置。