搭建步骤
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parsntartifactId>
<version>2.1.3.RELEASEversion>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
dependencies>
3.编写主程序启动类
# ManualChapterApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //标注该类为王程序启动类
public class ManualChapterApplication{
public static void main(String[]args){
SpringApplication.run(ManualChapterApplication.class);
}
}
# HelloController.java
import org.springframework.web.bind.annotation.GetMapping:
import org.springframework.web.bind.annotation.RestController;
@RestController //该注解为组合注解:@ResponseBody+@Controller
public class HelloController{
@GetMapping("/he1lo") //GetMapping:相当于RequestMapping(value="/hello”,ReqeustMethod.Get)
public String hello(){
return "hello spring boot";
}
}
5.运行项目
在ManualChapterApplication类中运行,即可在浏览器中打开网页localhost:8080/hello
搭建步骤:
2.创建一个用于Web访问的Controller
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController{
@GetMapping("/he1lo")
public String hello(){
return "hello spring Boot";
}
}
添加Springwebstarter依赖会自动完成一些配置,如IoC注解扫描,这个扫描只会扫描项目启动类所在的包及其子包,所以Controller需要放在项目启动类所在包及其子包内
3. 运行项目
在项目启动类中运行mai函数,然后在浏览器中打开网页localhost:8080/hello
@Controller : 加在类上面的注解,使得类里面的每个方法都返回一个视图页面。
但是在实际开发中,我们一般只是让后端的方法返回给前端是查询的数据,而不是一个新的视图页面。如果使用 @Controller 注解结合 @ResponseBody,就可以让这个方法返回给前端的不是一个视图,而是给前端传递查询到的数据。
从 Spring 4.0 以后产生的,用来将 json/xml数据发送到前台页面,而不是返回视图页面。它相当于 @Controller 和 @ResponseBody。
@RestController 加在类上面的注解,使得类里面的每个方法都将 json/xml 返回数据加返回到前台页面中。所以在实际开发中,我们一般都使用这个注解。
@RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些 URL 请求。
这个注解可以使用在 Controller 层的类或者方法上。注解在类上,表示类中的所有响应请求的方法都是以该地址作为父路径(模块路径)。
六个基本属性:
属性名: | 描述: |
---|---|
value(path) | 指定请求的实际访问地址,默认@RequestMapping(“url”)的值url即为value的值。指定的地址可以是 URI Template 模式。 |
method | 指定请求的method类型,主要有 GET、POST、DELETE、PUT等; |
params | 指定request中必须包含某些参数值,包含才让该方法处理请求。 |
headers | 指定request中必须包含某些指定的header值,包含才能让该方法处理请求。 |
consumes | 指定处理请求的提交内容类型(Content-Type),例如:application/json, text/html; |
produces | 指定返回的内容类型,当且仅当request请求头中的(Accept)类型中包含该指定类型才返回; |
@GetMapping(“getUser”)与@RequestMapping(value = “getUser”,method = RequestMethod.GET)是一样的
@PostMapping(“getUser”)与@RequestMapping(value = “getUser”,method = RequestMethod.POST)是一样的
当然还有@DeleteMapping @PatchMapping等注解,对应各种访问方式
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
//测试启动器加载Spring Booti测试注解
@Run With(SpringRum.er.clss)
//标记SpringBoot单元测试,加载项目的ApplicationContext上下文环境
@SpringBootTest
public class Chapter01ApplicationTests{
@Test
public void contextLoads(){
}
}
//测试启动器加载Spring Booti测试注解
@Run With(SpringRum.er.clss)
//标记SpringBoot单元测试,加载项目的ApplicationContext上下文环境
@SpringBootTest
public class Chapter01ApplicationTests{
@Autowired
private HelloController helloController;
@Test
public void contextLoads(){
String hello = helloController.hello();
Sout(hello);
}
}
1.在pom文件中添加spring-boot-devtools热部署依赖
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
dependency>
2.IDEA中热部署设置
使用快捷键“Ctrl+Shift+At+/”打开Maintenance.选项框,选中并打开Registryl页面。
3.热部署测试
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.1.3.RELEASEversion>
<relativePath>
<parent>
spring-boot-starter–parent是通过:标签对一些常用技术框架的依赖文件进行了统一版本号管理。
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
spring-boot-starter–web依赖启动器的主要作用是提供Web开发场景所需的底层所有依赖文件,它对Wb开发场景所需的依赖文件进行了统一管理。
Spring Boot应用的启动入口是 @SpringBootApplication 注解标注类中的main()方法;
@SpringBootApplication能够扫描Spring组件并自动配置Spring Boot。
@SpringBootApplication注解是一个组合注解,
包含@Spring BootConfiguration、@EnableAutoConfiguration、@ComponentScan.三个核心注解
this.webApplicationType = WebApplicationType.deduceFromClasspath()
this.setInitializers(this.getSpringFactoriesInstances(ApplicationContextInitializer.class))
this.setListeners(this.getSpringFactoriesInstances(ApplicationListener.class))
this.mainApplicationClass = this.deduceMainApplicationClass()