关于SpringBoot的详细配置
SpringBoot
1. 基本概念
每次创建新的SSM项目,都需要:创建Maven项目,添加依赖,配置web.xml,添加spring的配置文件,进行springmvc的相关配置,添加数据库的配置文件,配置mybatis等……准备工作相当的多,而且,随着项目的深入,可能还需要在开发过程中添加新的依赖或新的配置。
事实上,每个不同的项目,经历以上的过程是极为相似的!
使用SpringBoot可以快速的创建项目,却不用关心以上各种配置,在SpringBoot中,有一项开发理念就是“约定大于配置”,即:大多数人共同遵守的配置习惯,将在SpringBoot中成为默认配置,开发者就不必再关心这些配置了!
当然,SpringBoot还有更多特性,后续再补充!
2. 基本使用
访问默认的界面:Strat.springio
点击绿色按钮偏上方的 Switch to the full version. 链接可以展开完整界面,例如:
然后,确定当前需要创建的项目的参数,主要是:
顶部的项目类型、开发语言、SpringBoot版本;
Group,例如填写为com.springboot;
Artifact,例如填写为sample;
Name,表示项目名称,自动为Artifact的值,可以不更改;
Description:项目描述;
Package Name:项目的根包,在SpringBoot中,任何自定义组件都必须在根包或其子包中,例如控制器类、业务类等;
Packaging:WEB应用必须选择war;
Java Version:默认为8,也可以使用较低版本。
至此,项目的配置就已经完成,点击绿色的 Generate Project 按钮即可下载项目,得到项目的压缩包,将其解压,并剪切到Workspace中(这一步并不是必须的),然后在Eclipse中选择Import > Existing Maven Projects导入该项目,保证当前计算机是可以连接到Maven服务器,然后,项目会自动更新,添加所需要的所有依赖,至此,项目创建完成!
3. Hello, SpringBoot
设计目标:当输入某请求时,服务器返回"Hello, SpringBoot!"。
在项目的根包下创建子包controller,然后创建控制器类,例如HelloController,然后,添加@RestController注解:
@RestController
public class HelloController {
}
@RestController也是一种@Controller,并且,表示该控制器类中所有处理请求的方法都是@ResponseBody的。使用这个注解后,处理请求也就不可以是转发或重定向了,如果一定要转发或重定向,必须使用原有@Controller注解,并且处理请求的方法上不可以添加@ResponseBody。
然后,添加处理请求的方法:
@RestController
public class HelloController {
@GetMapping("/hello.do")
public String sayHello() {
return "Hello, SpringBoot!";
}
}
至此,简单的HelloWorld就已经完成!
项目的根包下有SampleApplication类(类名中Application左侧的是项目的Artifact名,所以,不同的项目,该类的名称可能不同),该类是SpringBoot项目的启动类,直接以Run as > Java Application方式启动即可,启动时,控制台会有启动日志:
其中,有一条:
Tomcat started on port(s): 8080 (http) with context path ''
SpringBoot是内置Tomcat的,所以,项目本身也不需要添加Tomcat运行环境,并且,SpringBoot部署项目时,如以上日志描述的,使用的Context Path是空值,以前访问时的URL可能是:
http://localhost:8080/项目名/hello.do
而在SpringBoot项目中则是:
http://localhost:8080/hello.do
也就是不需要再在URL中添加项目名了,执行效果例如:
4. 关于静态资源
项目中的src\main\resources\下的static文件夹是专门用于存放静态资源的,例如图片等等:
然后,启动SpringBoot,在浏览器中通过http://localhost:8080/timg.jpg即可访问:
5. 整合MyBatis
如果在http://start.spring.io创建项目时,并没有添加MyBatis等依赖,则需要手动添加:
<!-- 整合MyBatis -->
<dependenc