SpringBoot介绍<br>
设计理念
约定优于配置
自动配置(Auto-configuration)<br>
开箱即用
微服务友好
主要特点
自动配置
不用写一堆xml,SpringBoot自动配置<br>
内嵌服务器
自带Tomcat直接运行,不用再部署<br>
只要是创建了springboot的程序,且引入了 <br>spring-boot-starter-web坐标,这个坐标内部就自动依赖了tomcat服务器<br>
无序XML配置<br>
配置都写在applicatio.properties或yml里,不用面对复杂的xml<br>
boot处理请求
正常写controller和方法
根据HttpServletRequest对象获取参数<br>
在方法的形参位置加一个HttpServletRequest的形参,在方法体中,<br>通过getParameter()获取<br>
【例】
根据形参名获取数据
前端传递的形参名和boot中的方法形参名一致,自动封装
参数可以传,也可以不传,如果不传,boot中获取的是默认值
【例】
前端传递的形参名和boot中的方法形参名不一致,<br>需要使用 @RequestParam(name="前端的形参名")才能封装上<br>
一旦加了@RequestParam注解之后,如果没有设置required,该形参必须传,不传会报错!<br>
【例】
根据POJO获取数据<br>
只要保证POJO中的属性名和浏览器传递的参数名一致即可<br>
POJC<br>
简单的java对象,没有业务方法
vo
由后端给前端响应数据的时候,封装的是java对象
dto
在3层架构中,参数传递的时候,加dto<br>
POJO中允许嵌套,只需要前端使用","分割开后,名字对应即可<br>
【例】
获取数组
直接在方法的形参位置定义数组即可,只要名称对应即可
获取集合
直接在方法的形参位置定义数组即可,要求名称<br>对应且在形参面前添加@RequestBody注解即可<br>
获取json参数
给方法的形参带一个@RequestBody注解即可<br>
【例】
获取路径参数
给方法的请求路径上 加 /{自定义的参数名1} /{自定义的参数名2}<br>
【例】
方法的形参类型前面加@PathVariable<br>
【例】
响应
@RestController注解会自动将类中任意方法<br>的返回值类型转成字符串的json并响应给浏览器<br>
为了让前端可以使用固定的key获取对应的数据,<br>通常会设计一个统一结果类;(Result)<br>
快速入门
入口类(主程序Main Class)<br>
@SpringBootApplication注解<br>
为什么要有@SpringBootApplication注解?它包含了哪些注解?<br>
@SpringBootApplication是一个组合注解,包含了<br>@Configuration(声明配置类)、<br>@EnableAutoConfiguration(开启自动配置)、<br>@ComponentScan(自动扫描组件)。<br>作用是让Spring Boot应用自动配置并能扫描当前包及子包的Bean。<br>
application.properties/application.yml配置<br>
基本配置(端口、项目名、日志级别)<br>
如何修改SpringBoot默认端口?<br>
只需要在application.properties或application.yml里增加一行配置:<br><br>server.port=8081
写具体处理请求的controller类
在控制类的头上加@RestContoller注解<br>
在类的内部写一个成员方法,并在方法的头上指定@getMapping("/前端访问的路径")<br>
Rest风格
将请求按照不同请求方式,分别进行处理,响应的数据会以字符串的形式响应
给类的上面添加注解
@RestController<br>
@RequestMapping("前端访问的路径")<br>
给方法的上面添加的注解
@GetMapping<br>
专门处理前端发出的get方式的请求;<b>查</b><br>
@PostMapping<br>
专门处理前端发出的post方式的请求;<b>增</b><br>
@DeleteMapping<br>
专门处理前端发出的delete方式的请求;<b>删</b><br>
@PutMapping<br>
专门处理前端发出的put方式的请求;<b>改</b><br>
RequestMapping<br>
无论什么方式的请求,都可以处理
IOC和DI<br>
IOC<br>
控制反转,项目中所有创建对象的活SpringBoot都帮我们创建好了<br>我们不再创建对象
DI<br>
原来我们自己设计的接口类型的变量,都是自己赋值<br>现在SpringBoot帮我们设置,这个行为叫依赖注入<br>
IOC和DI的代码实现<br>
@Component<br>这个注解可以将该类交给spring的容器管理(IOC容器)<br>
@Service<br>
@Repository<br>
【例】
@Autowired<br>
默认按照类型进行注入,当同一个接口下,<br>有多个实现类的时候,需要配合其他注解解决
@Qualifier<br>
通过该注解指定bean的名称
bean的名称默认是类名的首字母小写后的名字
【例】
【例】<br>
包扫描
默认情况下,带@SpringBootApplication注解的类所在的包下全部内容(子路径)都会扫描<br>