项目执行的流程
- 首先定义好前后端需要传输的实体类
- 在Dao层里写好需要的操作
- Service层进一步处理,写好Service与其实现类
- Controller层进行数据前后端的交互
1、技术栈介绍
Springboot + Spring Security + Mybatis-Puls + Mysql + Redis + Elasticsearch + Vue + uniapp
一、Springboot
1、SpringBoot的核心注解
- 启动类上面的注解是@SpringBootApplication,它是 Spring Boot 的核心注解,包含了以下 3 个注解
- @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
- @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
- @ComponentScan:Spring组件扫描。
2、Springboot常用注解
- @Controller
@Controller注解用于定义控制器类,在SpringBoot中由控制器负责将用户发来的URL请求转发到对应的服务接口(Controller层)。
一般这个注解用在类上,控制器方法需要加上@RequestMapping注解。 - @ResponseBody
如果控制器方法加上@ResponseBody注解,该方法的返回结果将直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。
在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。
比如异步获取json数据,加上@Responsebody后,会直接返回json数据。该注解一般会配合@RequestMapping一起使用 - @RequestMapping
提供路由信息,负责URL到Controller中的具体方法的映射。
例:@RequestMapping(“/api/estudent”) - @RestController
@RestController注解是@Controller和@ResponseBody的合集。
使用在类上,表示该类是控制器,并且类中所有控制器方法的返回值直接填入HTTP响应体中,是RESTful风格的控制器,控制器方法返回JSON数据 - @PathVariable
获取URL上的参数(Restful风格接口) - @RequestParam与@RequestBody
1、都用来接受前端传的数据
2、json字符串部分可以用@RequestBody;url中的?后面参数可以用@RequestParam
这是@RequestParam
这是@PequestBody
对比:
- @Autowired的用法和作用
1、自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。加上(required=false)时,找不到bean也不报错,默认为true
2、这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。
<bean id="userDao" class="..."/>
<bean id="userService" class="...">
<property name="userDao">
<ref bean="userDao"/>
</property>
</bean>
这样你在userService里面要做一个userDao的setter/getter方法。
但如果你用了@Autowired的话,你只需要在UserService的实现类中声明即可
3、什么是Spring Boot Starter?
- 启动器是一套方便的依赖描述符,它可以放在自己的程序中。可以一站式的获取你所需要的Spring和相关技术,而不需要依赖描述符的通过示例代码搜索和复制粘贴的负载。
- 例如,如果想使用Spring和JPA访问数据库,只需要项目中包含spring-boot-starter-data-jpa 依赖项,就可以使用。
2、OSS对象存储
- 后端接受上传的文件,交给前端处理,前端Vue上传至阿里云OSS,把图片地址传给后端保存至数据库