spring boot入门
一、使用Maven 构建项目
1.通过spring initializr构建项目
-
访问:
http://start.spring.io/
-
选择构建工具为Maven project ,填写相应的内容
-
点击
Generate Project
下载项目压缩包
2.通过idea的Spring Assistant构建项目
-
点击spring Assistant完成相应的信息
-
选择要使用的starter
- 点击完成
二、项目结构
1.文件结构
关于项目的文件构造有几个重要的位置
- src/main/java/com 下的ReadinglistApplication为程序的入口
- src/main/resources 下的配置文件:application.properties
- src/test/下的ReadinglistApplicationTests为程序的测试入口
ReadinglistApplication和ReadinglistApplicationTests类可以直接运行
启动引导Spring
package com.readinglist;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ReadinglistApplication {
public static void main(String[] args) {
SpringApplication.run(ReadinglistApplication.class, args);
}
}
ReadinglistApplication 两个作用配置和启动引导
配置
虽然spring boot 的自动配置免除了很多spring配置,但是依然需要少量配置内启动自动配置
@SpringBootApplication开启了主键扫描和自动配置的功能,其作用相当于 @Configuration、@ComponentScan、@EnableAutoConfiguration
- @Configuration 表明这是一个配置类
- @ComponentScan 启用组件扫描,可以将其加载为Bean
- @EnableAutoConfiguration 启动自动配置
启动引导
运行 spring boot 程序可以使用传统的war ,** 同时main()可以在命令行中将该应用程序当作一个可执行的jar文件来运行
测试springboot
package com.readinglist;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ReadinglistApplicationTests {
@Test
public void contextLoads() {
}
}
在这类中完成了将ReadinglistApplication(其本身可以看作是一个配置类)加载到spring应用上下文的功能
ReadinglistApplicationTests中还有一个空的测试方法,即contextLoads(), 这个方法的存在证明了应用程序上下文的加载成功
application.properties
application.properties文件帮助我们细粒度地调整Spring Boot的自动配置。
2.包管理
spring boot可以使用Mavn进行包管理
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent> <!--关于版本号的继承-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo1</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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin><!--使用spring boot插件-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>