学习笔记-Spring Boot入门篇

入门

Spring Boot四个核心

  • 自动配置
  • 起步依赖
  • 命令行界面
  • Actuator

在IntelliJ IDEA里创建Spring Boot项目

New > Project > 不断的Next > Finish
学习笔记-Spring Boot入门篇
学习笔记-Spring Boot入门篇
学习笔记-Spring Boot入门篇
学习笔记-Spring Boot入门篇
最后得到一个空的Spring Boot项目
学习笔记-Spring Boot入门篇
如上图,项目中有不少文件

  • 主要的应用程序代码位于src/main/java目录里
  • 资源都在src/main/resources目录里
  • 测试代码则在src/test/java里
  • 如果存在测试资源,则要放在src/test/resources

BootDemoApplication.java


@SpringBootApplication
public class BootDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(BootDemoApplication.class, args);
	}

}

该类在Spring Boot应用程序里有两个作用:配置和启动引导。这是主要的Spring配置类。
@SpringBootApplication 开启了Spring的组件扫描和Spring Boot的自动配置功能。实际上,@SpringBootApplication将三个有用的注解组合在了一起:

  1. Spring的@Configuration:标明该类是使用Spring基于Java的配置
  2. Spring的@ComponentScan:启用组件扫描
  3. Spring Boot的@EnableAutoConfiguration:开启自动配置

一般来说,如果应用程序需要Spring Boot自动配置以外的其他Spring配置,最好把它写到一个单独的@Configuration标注的类里(组件扫描会发现并使用这些累=类的)。极度简单的情况下,可以把自定义配置加入BootDemoApplication.java。

BootDemoApplicationTests.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class BootDemoApplicationTests {

	@Test
	public void contextLoads() {
	}

}

一个测试类的骨架

application.properties

application.properties是一个空文件,这个文件完全是可选的,删除后对程序没有任何影响。
application.properties可以很方便的帮你细粒度的调整Spring Boot的自动配置,比如将端口号变为8000,只需要往文件中加入条目:

sever.port=8000

另外,完全不需要告诉Spring Boot加载application.properties,只要它存在就会被加载,Spring和应用程序代码都能获取其中的属性。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
......
	<modelVersion>4.0.0</modelVersion>
	<parent>
	...
	</parent>
	<groupId>com.example</groupId>
	<artifactId>boot_demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>boot_demo</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			......
		</plugins>
	</build>

</project>

Spring Boot 的起步依赖:spring-boot-starter、spring-boot-starter-test

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<!--排除传递依赖 -->
			<exclusions>
				<exclusion>
					<groupId>org....../groupId>
				</exclusion>
			</exclusions>
</dependency>