SpringBoot入门
一、前置知识
1.具有一定的JavaWeb应用开发经验
2.具有Spring与SpringMVC的使用经验
二、SpringBoot介绍
1.什么是SpringBoot
让Spring应用开发变得"简单粗暴"
2.开发流程
2.1 Spring应用开发流程
三、Maven构建SpringBoot应用
1.环境准备
JDK8以上版本
IDEA旗舰版
2.SpringBoot目录结构
2.1 创建目录结构
resources中的3个文件夹或文件需要自己创建。
静态资源:图片,css,js·····
templates:保存页面文件,比如web中的html、jsp·····
Springboot核心配置文件:application.properties.里面编写springboot相关的全部配置信息.
2.2 定义组件依赖
修改pom.xml文件
spring-boot-starter-parent帮我们自动引入了springboot中最基础的组件.所有springboot都要依赖于它才能进行构建.
springboot还使用了一系列启动器来描述工程所要支持的功能.例如web表示支持javaweb.因为在parent中已经制定了版本号,所以在依赖中的版本号就可以不用写了.
build配置项目打包方式
spring-boot-maven-plugin帮助我们在打包时自动将所有的类和资源整合成一个独立的可运行的jar包
所有内容配置好后,会自动下载依赖
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.jiang</groupId> 8 <artifactId>myspringboot</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <name>myspringboot</name> 12 <description>Demo project for Spring Boot</description> 13 14 <parent> 15 <groupId>org.springframework.boot</groupId> 16 <artifactId>spring-boot-starter-parent</artifactId> 17 <version>2.0.1.RELEASE</version> 18 <relativePath/> <!-- lookup parent from repository --> 19 </parent> 20 21 <properties> 22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 23 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 24 <java.version>1.8</java.version> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-web</artifactId> 31 </dependency> 32 </dependencies> 33 34 <build> 35 <plugins> 36 <plugin> 37 <groupId>org.springframework.boot</groupId> 38 <artifactId>spring-boot-maven-plugin</artifactId> 39 </plugin> 40 </plugins> 41 </build> 42 </project>
引入的jar中可以看到,底层引用了Spring核心包和一些springboot的starter启动器,每一个启动器都对应了一个明确的功能.
tomcat启动器将tomcat内嵌到项目中,项目启动时,tomcat随之启动
logging启动器提供日志支持
json启动器提供json序列化与反序列化功能的支持
以后开发时可以通过引入对应的starter包就可以提供相应的功能.
2.3利用spring mvc学到的知识进行项目开发准备
java目录中新建一个包,包中新建controller类
1 package com.jiang.myspringboot.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.ResponseBody; 6 7 /** 8 * @Description: 9 * @Author: Jiang yuting 10 * @Date: 2020/5/7 15:16 11 */ 12 //@Controller 表示当前类是一个mvc的控制器 13 @Controller 14 public class MyController { 15 //下面两个注解将/out路径和out方法绑定 16 @RequestMapping("/out") 17 //将return后的字符串原样输出到客户端的浏览器上 18 @ResponseBody 19 public String out(){ 20 return "success"; 21 } 22 }
一般类命名:工程名+application
1)入口类增加注解:说明这是一个SpringBoot应用的入口类
2)编写main方法
package com.jiang.myspringboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @Description: 入口类 * @Author: Jiang yuting * @Date: 2020/5/7 20:43 */ //说明这是一个SpringBoot应用的入口类 @SpringBootApplication public class MySpringBootApplication { public static void main(String[] args) { //启动SpringBoot应用 SpringApplication.run(MySpringBootApplication.class, args); } }
启动成功后控制台如下图
在浏览器中输入localhost:8080/out来验证程序是否真正启动成功(tomcat默认端口8080)
看到返回的success表示启动成功
利用Maven创建SpringBoot应用太麻烦了,在idea中提供了一个向导工具Spring Initializr,可以让我们一键生成SpringBoot工程.
新建工程→Spring Initializr
选择启动器
新建一个controller目录及controller类
1 package com.jiang.myspringboot.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.ResponseBody; 6 7 /** 8 * @Description: 9 * @Author: Jiang yuting 10 * @Date: 2020/5/7 21:12 11 */ 12 @Controller 13 public class MyController { 14 @RequestMapping("/out") 15 @ResponseBody 16 public String out(){ 17 return "myspringboot ok~~"; 18 } 19 }
启动
设置端口
设置应用上下文
区分不同应用中的相同路径
设置日志相关
设置debug
设置jdbc
(jdbc启动类,连接的数据库地址,用户名,密码)
yml格式更易于管理
1 debug: true 2 #logging.level.root 3 #logging.file 4 logging: 5 level: 6 root: info 7 file: e:/myspringboot.log 8 9 spring: 10 datasource: 11 driver-class-name: com.mysql.jdbc.Driver 12 url: jdbc:mysql://localhost:3306/test 13 username: root 14 password: 123456 15 mall: 16 config: 17 name: 爱美商城 18 description: 这是一家化妆品特卖网站 19 hot-sales: 20 20 show-advert: true
1 package com.imooc.myspringboot.controller; 2 3 import org.springframework.beans.factory.annotation.Value; 4 import org.springframework.stereotype.Controller; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.ResponseBody; 7 8 @Controller 9 public class MyController { 10 @Value("${mall.config.name}") 11 private String name; 12 @Value("${mall.config.description}") 13 private String description; 14 @Value("${mall.config.hot-sales}") 15 private Integer hotSales; 16 @Value("${mall.config.show-advert}") 17 private Boolean showAdvert; 18 19 @RequestMapping("/out") 20 @ResponseBody 21 public String out(){ 22 return "success"; 23 } 24 25 @RequestMapping("/info") 26 @ResponseBody 27 public String info(){ 28 return String.format("name:%s,description:%s,hot-sales:%s,show-advert:%s", 29 name,description,hotSales,showAdvert); 30 } 31 }
主配置文件中指定使用哪个环境
spring:
profiles:
active: prd
点击ok后,下拉列表多了一个package选项
选中它,按绿色三角运行,看到build success表示运行成功
同时,新生成的jar包保存在target目录下
在命令行中使用java -jar运行
运行后可以在控制台看到
端口号为80,开发环境
如果想切换到生产环境,只要将所有的application yml文件复制到与jar包同级的目录下即可,jar就会自动优先读取这些文件.
总结