要想学习Spring Boot你需要拥有相应的Spring框架使用经验和Maven的使用:Spring教程
文章目录
基础篇
-
一、Spring Boot 入门

-
简介:
SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
-
特点:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。 -
微服务简介
-
提到微服务首先需要提一下单体应用。单体应用就是我们平时一般在做练习时会使用的,将所有的东西都写在一起打成一个war包部署到Tomcat中。
- 优点:
- 开发测试简单
- 部署简单
- 扩展比较简单
但是随着软件需求的日益增长,单体应用因为其“牵一发而动全身”的问题也越来越显著。为维护与分工合作造成了极大地困扰

- 微服务:架构风格。一个应用应该是一组小型服务;可以通过HTTP的方式进行互通,它将每个元素功能放进一个独立的服务中,并且通过跨服务器分发这些服务进行扩展,只在需要时才复制。每一个功能元素最终都是一个可独立替换和独立升级的软件单元

-
maven配置(在maven安装目录conf文件夹下配置setting.xml)
在profiles标签中添加 <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compliler.compilerVersion>1.8</maven.compliler.compilerVersion> </properties> </profile> -
HelloWorld入门程序
-
创建一个Maven工程(无需骨架)
-
导jar包
<parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> -
编写一个主程序,启动SpringBoot应用
package com.boot.main; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @Author: 东方老赢 * @Date: 2020/4/25 14:34 * * @SpringBootApplication:来标注一个主程序类,说明这是一个SpringBoot应用 */ @SpringBootApplication public class HelloWorld { public static void main(String[] args) { //spring应用启动起来 SpringApplication.run(HelloWorld.class,args); } } -
编写controller
package com.boot.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * @Author: 东方老赢 * @Date: 2020/4/25 14:46 */ @Controller @RequestMapping("/controller") public class HelloController { @ResponseBody @RequestMapping("/hello") public String hello(){ return "Hello World"; } }
-
-
然后直接运行main方法:当出现下面界面时,说明启动成功

然后在网页测试

这便是运行成功啦!是不是非常方便呢,不用引入繁琐的jar包,不用配置Tomcat,甚至不必写配置文件,你就可以轻松运行起一个简单的web项目,SpringBoot入门就开始啦!-
简化部署
-
首先在pom.xml导入插件
<!-- 这个插件,可以将应用打成一个可执行的jar包--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> -
单击IDEA右边侧栏的Maven找到图中package双击,他会自动将该工程打成jar包放在target目录下


-
将jar包复制到桌面启动命令提示符(使用java -jar命令启动jar包)

-
然后继续在网页测试,是依然可以的,根本都没有用到tomcat,是不是很神奇呢

-
细节,为什么没有tomcat也可以部署jar包呢?这是因为你导入SpringBoot的jar包后,他自动给你导入了一系列的jar包,其中就包含了tomcat的jar包,现在我们可以更加了解到SpringBoot是有多方便了吧

-
-
细节:HelloWorld探究
-
pom.xml文件
- 父项目

- 启动器starter(导入的依赖)

- 父项目
-
自动配置(主程序类、主入口类)

-
使用向导快捷键快速创建SpringBoot的应用(Spring Initializer)





resources文件夹的目录结构- static:保存所有的静态资源;js、css、images;
- templates:保存所有的模板页面;(SpringBoot默认jar包使用嵌入式的Tomcat,默认不支持jsp页面);可以使用模板引擎(freemarker、thymeleaf);
- application.properties:SpringBoot应用的配置文件;可以修改一些默认设置
-
-
-
二、Spring Boot 配置
-
配置文件
- SpringBoot使用一个全局的配置文件(配置文件名是固定的)
application.properties 或者 application.yml - 配置文件的作用:修改SpringBoot自动配置的默认值;
- yml:是YAML语言的文件,以数据为中心,比 json、xml 等更适合做配置文件

- SpringBoot使用一个全局的配置文件(配置文件名是固定的)
-
YAML语法
-
基本语法:
- k:(空格)v:表示一对键值对(冒号与值之间必须有空格,如果没有字体颜色会变白)
- 以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
- 属性值的大小写也敏感;
-
值的写法
-
字面量:普通的值(数字,字符串,布尔)
- k: v:字面直接来写;
字符串默认不用加引号(无论单双)
双引号:不会转移字符串里面的特殊字符;特殊字符会作为本身想表达的意思
单引号:会转义特殊字符,特殊字符最终只是一个普通的字符串数据

- k: v:字面直接来写;
-
对象、Map(属性和值)(键值对)
- k: v:在下一行来写对象的属性和值;注意缩进
对象还是k: v的方式
# k: v方式 people: name: Lisa age: 22 #行内写法 people: { name: Lisa,age: 22} - k: v:在下一行来写对象的属性和值;注意缩进
-
数组(List、Set)
- 用 - 值表示数组中的一个元素
#使用-值 pets: - cat - dag - pig # 行内写法 pets: [cat,dog,pig]
-
-
配置文件注入
-
配置文件
person: name: Lisa age: 22 boss: false bir: 2008/7/8 map: { k1: v1,k2: 14} list: - a - b dog: name: 小狗 age: 2 -
JavaBean
package com.boot.bean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Map; /** * @Author: 东方老赢 * @Date: 2020/4/26 15:25 * * * @Component: 将其注入到容器中 * @ConfigurationProperties: 告诉SpringBoot将本类中所有的属性和配置文件中相关的配置进行绑定 * prefix = "person":配置文件中那个下面的所有属性进行一一映射 */ @Component @ConfigurationProperties(prefix = "person") public class Person implements Serializable { private String name; private Integer age; private Boolean boss; private Date bir; private Map<String,Object> map; private List<Object> list; private Dog dog; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Boolean getBoss() { return boss; } public void setBoss(Boolean boss) { this.boss = boss; } public Date getBir() { return bir; } public void setBir(Date bir) { this.bir = bir; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } public List<Object> getList() { return list; } public void setList(List<Object> list) { this.list = list; } public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", boss=" + boss + ", bir=" + bir + ", map=" + map + ", list=" + list + ", dog=" + dog + '}'; } }package com.boot.bean; import java.io.Serializable; /** * @Author: 东方老赢 * @Date: 2020/4/26 15:27 */ public class Dog implements Serializable { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public
-
-
-

本文是Spring Boot的基础教程,详细介绍了从入门到简单应用的全过程。包括Spring Boot的入门步骤,如创建Maven工程、配置及运行,强调了其便捷性,如自动配置、内嵌Tomcat等特性。同时,文章还提及了微服务概念,讨论了单体应用与微服务的区别,并简单介绍了Spring Boot的配置文件、JavaBean和测试。最后,文章涵盖了日志框架的选择和配置,以及Spring Boot与Web开发、数据访问的整合。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



