虽然工作用不到springboot,甚至没有用到spring,但这也就是为什么我有了强烈的危机感,现在许多地方应该会用到吧,或许标题应该是从零开始学springboot。跟着尚硅谷的springboot视频学习,如有侵权请留言或发邮箱告诉我
spring boot是用于简化spring开发的框架,是基于spring再封装的一个框架
优点:
- 快速创建独立运行的Spring项目以及与主流框架集成
- 使用嵌入式的Servlet容器,应用无需打成WAR包
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可修改默认值
- 无需配置XML,无代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
这里的无需配置配置文件,和starters自动依赖真的是很吸引人,想想用spring的时候从各种配置开始学真的有些繁琐。
环境约束
- jdk1.8
- maven3.x
- IDEA2018
- SpringBoot1.5.9
准备工作
1.在apache-maven-3.3.9\conf\settings.xml中检查:
<profiles>
<profile>
<id>jdk18</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.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
2.将IDEA的Maven环境修改为当前1.8版本,IDEA自带Maven
HelloWorldDemo
流程:浏览器发送请求,服务器接收后处理并响应HelloWorld
创建一个Maven工程
(也可以创建一个SpringInitializr工程,下面会讲到)
右下角会出现一个AutoImport
如果你和我一样很不幸的点了×但是又不想重来一遍,那么就在settings中设置Maven-importing
这个设置呢就意味着IDEA会自动帮我们导入依赖导入依赖,在pom.xml中加入:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
就可以看到右下角在自动下载jar包
写HelloWorld,在main里新建一个HelloWorld的class
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /* @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootApplication public class HelloWorld { public static void main(String[] args){ SpringApplication.run(HelloWorld.class,args); } }
编写相关的Controller
@Controller public class HelloWorldController { @ResponseBody @RequestMapping("/hello") public String hello(){ return "Hello World"; } }
补习:@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。来源
- 运行main方法
可以看到整个过程是非常简单的,也就只有注入依赖、写主程序和控制器就没了,回顾一下springMVC应用的流程,配置bean 创建Ioc容器 在程序中获取bean实例 还有SpringMVC的ModelAndView,(虽然我SpringMVC只是学了个大概,没有实践过),SpringBoot的出现一定是为了我这样的懒人减少配置的步骤才出现的吧
打包,加一个插件就可以做到
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
无需再目标服务器安装tomcat环境,接着在右侧看到Maven Projects点开,点package让他装
打包好的jar包存在于target文件夹下
用cmd执行java -jar jar包名称
就可以一样把应用跑起来,这就是SpringBoot对部署带来的便捷
quickDemo
可使用Spring Initializer快速创建SpringBoot项目
IDE都支持使用Spring快速创建向导来开启一个SpringBoot项目
步骤:New- Project- Spring Initializer
在Dependencies下选择你要的依赖,然后向导会自动联网帮你配好这些依赖把不要的东西去掉。
新建完成后会发现主程序已经帮你创好了,接下来只要写逻辑就可以了。
Controller中的一个注解@RestController包含@Controller和@ResponseBody,ResponseBody在上面已经回顾过。标注在Controller上代表这是一个Controller类。
@RestController
public class HelloController {
@RequestMapping("/hello2")
public String hello(){
return "quick hello";
}
}
这下一个quickDemo就完成了,不仅比原先少写主配置文件和依赖,自动生成的目录结构也将静态资源和配置文件生成好了
-main
---java
------com.quickdemo.demo
---------DemoApplication
---resources
------static 这个放静态资源
------templates 这个保存所有的模态页面
------application.properties 配置文件