第一:什么是SpringBoot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot其实就是一个整合很多可插拔的组件(框架),内嵌了使用工具(比如内嵌了Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。
第二: SpringBoot 核心功能
- 独立运行的项目
SPringBoot项目可以打成 jar 包的形式独立运行,通过 java -jar xxx.jar 来运行。 - 内置 Servlet 容器
SpringBoot 可以选择内置 Tomcat、Jetty 或者 Undertow,这样我们无须以war包的形式放入Tomcat内部署。 - 提供 starter 简化 Maven 配置
Spring 提供了一系列的 starter pom 来简化 Maven的依赖加载。 - 自动配置 Spring
SpringBoot 会根据类路径的 jar 包、类, 为 jar 包里的类自动配置 Bean, 这样会极大的减少我们要使用的配置。 - 无代码生成和 xml 配置
SpringBoot 4.x 提倡使用 Java 配置和注解配置结合,而 SpringBoot 不需要任何 xml 配置即可实现 Spring 的所有配置。
第三:SpringBoot 的优缺点
- 快速搭建
- 配置 web.xml,加载 Spring 和 Spring MVC
- 配置数据库连接、配置 Spring 事务
- 加载配置文件的读取,开启注解
- 配置日志文件
- 配置完成之后部署 Tomcat 调试
- 创建独立的Spring应用程序
- 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
- 完全没有代码生成,也不需要XML配置
第四:SpringBoot 快速搭建
- 方式一:
在浏览器输入: http://start.spring.io
- Project:选择Maven项目或者Gradle项目(目前Maven比较流行)
- Language:Java 语言
- SpringBoot:版本
- Project Metadata:填写包名、项目名、选择 Jar 包的方式(内置Tomcat)、选择 Java 版本
- 点击 Generate - Ctrl 生成项目下载
- 之后导入到开发工具即可
- 方式二:
- 打开 idea,点击 File --> New --> Project --> 选择Spring Initializer
- 填写好包名以及项目名
- 加入spring-boot-web的依赖包,Next 之后点击 Ok
- 运行项目,找到包路径下的 CoindevinApplication , 这是项目的主程序入口,右键 Run 即可运行,默认端口为 8080
@SpringBootApplication
public class CoindevinApplication {
public static void main(String[] args) {
SpringApplication.run(CoindevinApplication.class, args);
}
}
控制台:运行成功一个简单的项目就搭建起来了,是不是特别简单。
第五:项目结构介绍
如上图所示,Spring Boot 的基础结构共三个文件:
src/main/java:程序开发以及主程序入口
src/main/resources:配置文件
src/test/java:测试程序
另外,Sping Boot 建议的目录结果如下:
myproject
+-src
+- main
+- java
+- com.coin.coindevin
+- comm
+- domain
+- repository
+- service
+- web
+- CoindevinApplication.java
+- resources
+- static
+- templates
+- application.properties
+- test
+-pom.xml
com.example.myproject 目录下:
- CoindevinApplication.java:建议放到根目录下面,是项目的启动类,Spring Boot 项目只能有一个 - main() 方法。
- comm:目录建议放置公共的类,如全局的配置文件、工具类等。
- domain:目录主要用于实体(Entity)与数据访问层(Repository)。
- repository:数据库访问层代码。
- service:该层主要是业务类代码。
- web:该层负责页面访问控制。
resources 目录下:
- static:目录存放 Web 访问的静态资源,如 JS、CSS、图片等。
- templates:目录存放页面模板。
- application.properties:项目的配置信息。
第六:简单 Web 开发,编写 HelloWorld
- 在 Controller 包下,建立一个 HelloController
@RestController
public class HelloController {
@RequestMapping("/hello")
public String getHello(){
return "hello world";
}
}
- 编写测试类,或者打开浏览器输入:http://localhost:8080/hello
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloTest {
@Autowired
private HelloController helloController;
@Test
public void getTest(){
System.out.println("测试SpringBoot项目:" + helloController.getHello());
}
}
- 右键 Run 运行测试,控制台输出
2020-01-18 10:16:06.258 INFO 9060 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-01-18 10:16:06.613 INFO 9060 --- [ main] com.coin.coindevin.HelloTest : Started HelloTest in 4.747 seconds (JVM running for 5.609)
测试SpringBoot项目:hello world
2020-01-18 10:16:06.690 INFO 9060 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
2020-01-18 10:16:06.691 INFO 9060 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2020-01-18 10:16:06.693 INFO 9060 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2020-01-18 10:16:06.697 INFO 9060 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
Process finished with exit code 0