SpringBoot HelloWorld
SpringBoot HelloWorld
一个功能:
浏览器发送一个hello请求,浏览器接受请求并处理,响应hello字符串
1. 创建一个maven工程(jar)
2. 导入SpringBoot相关依赖
maven选择自动导入
1 | <parent> |
(1) 父项目
1 | <parent> |
它的父项目是
1 | <parent> |
SpringBoot的版本仲裁中心;
导入依赖默认不需要写版本(没有在dependencies中进行管理的自然需要声明版本号)
(2) 导入的依赖
1 | <dependency> |
Spring-boot-starter-web
-
spring boot场景启动器: 帮我们导入了web模块正常运行所依赖的组件
-
SpringBoot将所有功能场景都抽取出来,做成一个个starters(启动器),只需要在项目中引入这些starter,相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器
3. 编写主程序
1 | // 来标注一个主程序类,说明这是一个Spring Boot类 |
@SpringBootApplication
:SpringBoot标注在某个类上,说明这个类是SpringBoot的主配置类。SpringBoot就应该运行这个类的main 方法来启动SpringBoot类。
1 | ({ElementType.TYPE}) |
-
@SpringBootConfiguration
:SpringBoot的配置类标注在某个类上,表示这是一个Spring Boot配置类
-
@Configuration
:配置类上标注这个注解配置类==配置文件;配置类也是容器中的一个组件;
@Component
-
@EnableAutoConfiguration
:开启自动配置功能以前我们需要配置的东西,SpringBoot自动帮我们配置
1
2
3
({AutoConfigurationImportSelector.class})
public EnableAutoConfiguration -
@AutoConfigurationPackage
:自动配置包@Import({Registrar.class})
Spring的底层注解,@Import给容器中导入一个组件;导入的组件由Registrar.class
将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件都扫描到Spring容器中。
-
@Import({AutoConfigurationImportSelector.class})
给容器中导入组件,
AutoConfigurationImportSelector.class
:导入哪些组件的选择器将所有需要导入的组件以全类名的方式返回;
这些组件就会被添加到容器中;
会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件
有了自动配置类,就免去了手动编写配置注入功能组件的工作
Spring Boot在启动时从类路径下的META-INF/spring.factories中获取
EnableAutoConfiguration
指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作J2EE的整体解决方案和自动配置都在
spring-boot-autoconfiguration
中
4. 编写相关的Controller, Service
1 | package com.haven.Controller; |
5. 运行主程序测试
6. 简化部署
11.5
导入Spring Boot的maven插件
1 | <!-- 可以将应用打包成一个可执行的jar包 --> |
侧边栏—>Maven—>项目—>LifeCycle—>package
1 | java -jar |
进行执行
7. 使用SpringBoot Initializer创建的项目
-
resources
-
static: 保存的所有静态资源 js, css, 图片
-
templates: 保存所有的模版页面。(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持jsp的页面);
可以使用模版引擎(freemarker, thymeleaf);
-
**application.properties: **Spring Boot应用的配置文件
-