SpringBoot01-入门
一,简介
spring boot 用来简化spring的开发,约定大致配置,去繁从简。
优点:
1.快速创建独立运行的Spring项目以及与主流框架集成
2.使用嵌入式的Servlet容器,应用无需打成WAR包
3.starters自动依赖与版本控制
4.大量的自动配置,简化开发,也可修改默认值
5.无需配置xml,无代码生成,开箱即可
6.准生产环境的运行时应用监控
7.与云计算的天然集成
二,微服务
微服务:架构风格(服务微化)
一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;
每一个功能元素最终都是一个可以独立升级的软件单元;
环境约束:
-jdk1.8
-maven 3.x : maven3.3以上版本
-IntelliJIDEA
三,环境配置
1.Maven设置
给maven的setting.xml配置文件的profiles标签添加
2.设置IDEA使用本地maven
四,Spring boot HelloWorld
浏览器发送一个hello请求,服务器接受请求并处理,响应Hello World字符串
1.创建一个maven工程
2.导入springboot的依赖,在pom.xml
3.编写一个主程序;启动Spring Boot应用
4.编写相关Controller,Service
5.测试应用程序
6.简化部署
五,HelloWorld探究
1.POM文件
a.父项目
他的父项目是
他来真正管理SpringBoot应用的所有依赖版本
SpringBoot的版本仲裁中心:
以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)
b.导入依赖
spring-boot-starter-web:
spring-boot-starter:spring-boot场景启动器,帮我梦导入了web模块运行所依赖的组件;
SpringBoot将所有的功能场景都抽取出来,做成一个个的starter(启动器),只需要在项目中引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入相应的场景启动器。
2.主程序类,主入口类
@SpringBootApplication:Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法启动SpringBoot应用程序。
@SpringBootConfiguration:Spring Boot的配置类
标注在某个类上,表示这是一个Spring Boot的配置类;
@Configuration:配置类上标注这个注释
配置类-配置文件;配置类也是容器中的一个组件;@Component
@EnableAutoConfiguration:开启自动配置功能
以前我们需要配置的东西,SpringBoot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot开启自动配置功能;这样配置才能生效;
@AutoConfigurationPackage:自动配置包
@Import({Registrar.class}):Spring的底层注解@Import,给容器中导入一个组件;导入的组件由Registrar决定。
将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包下所有组件扫描到容器中。
@Import({AutoConfigurationImportSelector.class})
给容器中导入组件?
AutoConfigurationImportSelector:导入那些组件的选择器;将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;会给容器中导入非常多的自动配置类;就是给容器中导入这个场景所需要的所有组件,并配置好这些组件。
有了自动配置类,免去了我们手动编写配置注入功能组件等的工作:SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);
Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们自动配置工作;以前我们需要自己配置的东西,自动配置类都能帮我们;
J2EE:的整体整合解决方案和自动配置文件中都有解决
六,使用Spring Initializr快速创建SpringBoot项目
IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目;选择我们需要的模块,向导会联网创建SpringBoot项目,默认生成的SpringBoot项目;
1.主程序已经生成好了,我们只需要将自己的逻辑
2.resources文件夹中目录结构
static:保存所有的静态资源:js ,css, images;
templates:保存所有的模板页面,(Spring boot默认jar包是用嵌入式的Tomcat,默认不支持JSP页面),可以使用模板引擎(freemarker,thymeleaf);
application.properties:Spring Boot应用的配置文件;