一.构建系统

1.依赖管理
1.1.依赖管理工具:maven/gradle/ant
1.2.依赖管理
1.2.1.默认(建议使用)
从spring initializr(https://start.spring.io/)官网下载的一般会引入spring-boot-starter-parent父依赖来管理springboot的一系例的依赖及插件配置、jdk版本(1.8)、字符编码(utf-8)
1.2.2.自定义父pom:
1).可以使用dependencyManagement导入spring-boot-dependencies包来管理配置(注意scope要使用import),如下:
下面展示一些 内联代码片

<dependencyManagement>
		<dependencies>
			<dependency>
				<!-- Import dependency management from Spring Boot -->
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>2.2.5.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
	 </dependencies>
</dependencyManagement>

注意:这种配置会有包依赖冲突,需要自己手动配置排除依赖,并且不会管理插件,代价太大,所以不建议使用该配置
2).完全自定义依赖管理,及配置属性。

2.构建插件
使用spring-boot-maven-plugin插件作为程序的构建启动
下面展示一些 内联代码片

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如果你有多个环境的配置也可以在这里面定义不同环境的构建配置(详细请参看maven构建)
3.启动器(starters)
3.1.作用:一站式集成需要使用的技术(如:springmvc/spring jpa)
如:spring-boot-starter-data-jpa包含了使用Spring JPA访问数据库的一系列的依赖包及配置项;
3.2.好处:不需要到处找示例代码和依赖包
3.3.命名: springboot的启动器都是以spring-boot-starter-命名的
3.4.分类:
1).应用类启动器
应用层的一些启动器,如:
spring-boot-starter-web:会包含一些spring mvc,及其启动springmvc的容器(默认tomcat)
2).产品(production)类启动器
已经可以使用的成套的产品启动器,主要用于管理应用类产品,所以其实并不能单独使用,如
spring-boot-starter-actuator:用于监控和管理应用程序,但如果没有引入spring-boot-starter-web并不会启动成功
3).技术/专门类(technical)启动器
在你不想使用应用类启动器或者产品类启动器时,可以另外使用的一些专门的服务启动器
如:spring-boot-starter-web引用的web容器是tomcat9,如果你不想使用,你可以自己引入tomcat的其他版本及其他的web容器。

二.代码运行

1.构建代码
1.1.启动入口
一般来说,找到应用程序的启动入口很重要,而springboot的启动入口是进行了@SpringBootApplication注解标注的类,所以一般程序里只包含一个标注了@SpringBootApplication的类

1.2.@SpringBootApplication
包含的注解有:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan,可以直接使用这三个注解替换@SpringBootApplication,比如你想扫描某些特定的包时可以使用@ComponentScan。

2.配置
2.1.自动配置
1).SpringBoot自动配置尝试根据你添加的jar自动配置应用程序。比如:你使用数据库时未手动配置任何数据库配置,则SpringBoot使用自己内嵌的(H2|DERBY|HSQL)数据库,具体的数据库链接后面讲解;
2).配置文件:application.properties/application.yml
springboot会自动加载src/main/resources/application.properties或者application.ymll配置,你可以在其配置spring的配置信息;
2.2 自定义配置
自动配置是非侵入性的。你可以任意的替换自动配置的特定部分,比如:引入spring-boot-starter-jdbc时,默认的数据库配置前缀是spring.datasource,但是你如果想使用druib数据库池,你可以将其前缀修改为spring.datasource.druid;当然有时候修改自动配置需要修改配置类 2.3.配置类(参看springboot(二):注解)3.Spring Beans 和 dependency injection 1).@SpringBootApplication中包含的@ComponentScan会自动扫描需要注入的类(@Component、@Contorller、@Service…注解修饰的类都是表明是需要注入的类); 2).无需像传统的springmvc进行依赖注入配置

4.运行 启动方式请参看springboot(一):入门 程序运行