常用注解
@RestController:放在类前面,表示为请求处理类
@RequestMapping:一般放在方法前,value属性可指定请求路径,method属性可指定请求方式
@GetMapping/@PutMapping/@DeleteMapping/@PostMapping等为其衍生注解,已指定请求方式,只需填入请求路径
也可抽取类中请求路径相同的部分,放在类前
请求路径就变为类前路径加方法前路径
代码简洁一点,但是可读性也相对变差,是否使用这种方法视情况而定
@RequestParam:放在方法参数中,
1.表示请求参数到方法参数的映射
2.将数组请求参数以集合形式接收
defaultValue属性可设置参数默认值
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss"):放在方法参数中,指定接收日期参数格式,常配合 LocalDateTime 类型使用
下面是一个@DateTime("yyyy-MM-dd")示例:
@RequestBody:放在方法参数中,将JSON格式的数据封装到实体对象中
注意:传入进来的数据字段名需要在封装的实体类中存在
@PathVariable:放在方法参数中,将路径参数绑定给方法形参,要求对应的参数名字相同
@ResponseBody:
@ComponentScan:组件扫描,默认扫描当前包及其子包,包含于@SpringBootApplication中,需要指定扫描范围时,以数组形式当作参数写入,注意,需要写入当前包,因为重新指定时当前包被覆盖,如下
控制反转/依赖注入(IOC/DI)
注解
@Component:写在类前,将类交给IOC容器管理,成为IOC容器中的Bean--控制反转
@Autowired:写在创建的对象前,IOC容器将提供该类型的Bean对象,并赋值给当对象--依赖注入
@Service、@Repository为@Component的衍生注解,分别在service、dao层使用。
@Controller为@Component在Controller层的衍生注解,但由于@RestController包含@Controller和@ResponseBody,故一般不用加,不属于三层架构的如工具类,类前还是sh
命名
对Bean对象进行命名:在注解后加括号,使用value="Bean名"可对Bean对象命名,也可以省略value= 直接命名,默认名字是类名首字母小写
选择注入Bean
由于@Autowired是按照类型进行注入,如果存在多个相同类型的Bean时会进行报错,解决方法:
@Primary:对Bean设置优先级,对想要其生效的Bean上加上@Primary注解
@Qualifier:在需要注入的对象前加上@Qualifier("Bean名")
@Resource:由jdk提供而非Spring框架,按照Bean名进行注入,在需要注入的对象前加上@Resource(name="Bean名")
获取HttpServletRequest请求对象
调用request.getParameter()方法获取请求参数
注意:获取的参数均为String类型,可对对象进行类型转换
统一响应结果Result
三层架构
Controller:接收请求、响应数据
Service:逻辑处理
Dao层:数据访问
项目层级
resources:放配置资源
resources-static:放静态资源