“学而不思则罔,思而不学则殆”
本文主要用来参照SpringBoot学习视频,记录新手SpringBoot的学习笔记
SpringBoot简介
- SpringBoot简化Spring开发的一个框架
- 整个Spring技术栈的一个大集合(包含各种starter)
- J2EE一站式开发解决方案
微服务
相关联的时代背景:微服务
微服务是一种架构风格,相比于之前的ALL IN ONE的风格;微服务每一个应用都是一组小型服务,可以通过HTTP的方式进行通信;同时每个功能元素最终都可以进行独立的升级和替换
HelloWorld项目构建
- 建立Maven项目
先不使用Initializer,只是使用IDEA建立一个Maven项目 - 引入starter
maven工程最重要的是配置pom.xml,对于SpringBoot项目,必须要配置starter的parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
对于一般的web项目,同时需要引入spring-boot-starter-web依赖,该依赖内嵌tomcat,后面项目可以不用生成war放置在tomcat容器中;只需要生成可执行jar包即可运行
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 创建主程序
主程序使用@SpringBootApplication注解
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
//Spring应用启动起来
SpringApplication.run(HelloWorldMainApplication.class, args);
}
}
- 创建Controller和Service
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello Springboot";
}
}
-
启动运行
创建完成后便可以启动运行,访问http://localhost:8080/hello便可以 -
便捷部署(生成可执行jar包,其中内嵌tomcat可以直接运行)
在POM文件中对增加build插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
HelloWorld项目探究
-
父项目spring-boot-starter-parent
其中spring-boot-starter-parent的父项目为spring-boot-dependencies,它来真正管理SpringBoot应用里面所有的版本依赖关系(使用Spring框架会遇见各种版本不匹配的问题);以后在项目中导入依赖默认是不需要写版本号的(除非在dependencies中没有相关的声明版本号) -
启动器starter
spring-boot-starter-web;SpringBoot将所有的场景都抽取出来,做成一个个的starter,只需要引用相关的starter,相关的场景所有的依赖都会导入进来。 -
主程序类、主入口类
使用@SpringBootApplication作为程序的主入口,相关详细的注解如下
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication
其中重点的注解为 @EnableAutoConfiguration,该注解会将主配置(@SpringBootApplication标注的类)的所有包及一下所有的子包内的所有组件扫描到Spring容器中
@Import({AutoConfigurationImportSelector.class})
实际就是给容器导入这个场景所需要的所有组将,并配置好这些组件。
使用Spring Initializer快速建立工程
使用IDEA或者spring官网上,可以直接勾选相应的starter,构建相应的工程。
其中resource文件夹的目录结构:
- static:保存所有的静态资源:js css images
- template:保存所有的模板页面(Spring
Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面),可以使用模板引擎(freemarker、thymeleaf) - application.properties:Spring Boot应用配置文件,可以更改一些默认配置文件。