1 git 常用命令:add commit push
2 Bootstrap 从此工具找到自己对应的前端样式。
3 session相当于银行账号,cookie相当于银行卡
4 以注解的方式使用mybatis,在application.properties配置数据库的信息,然后在sql注解的类上使用@Mapper,将此Mapper扫描到IOC容器中,或者说将mybatis与spring boot进行了集成。
5 当以xml的方式的方式使用mybatis,在application.properties中配置数据库连接信息外,还需要配置xml文件的位置和别名所要扫描的包,然后在spring boot的启动文件中通过@MapperSan()制定要扫描的包(这个扫描的是DAO类),此处将mybatis与spring boot进行了集成。
6 使用cookie来实现持久化登陆登陆
7 通过Lombok自动生成get、set、toString方法,在实体类上使用@Data即可,如果未成功,查看是否安装了插件
8 拦截器通过继承HandlerInterceptor借口,根据需要重写其中的preHandler等方法,这是springMvc的内容。然后就需要注册拦截器,springboot书中的注册方式是:让配置文件继承WebMvcConfigurer借口,覆盖addInterceptors方法将刚才新建的拦截器添加进去,并通过addPathPatterns方法制定拦截匹配的模式。码匠的方式是直接新建一个类并通过@Configuration表明这是一个配置类
@Configuration
//@EnableWebMvc 这个配置会导致不去读默认的资源文件,所以导致css,js等失效
public class WebConfig implements WebMvcConfigurer {
@Autowired
private SessionInterceptor sessionInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
}
9 Mybatis Generator的使用通过Maven导入插件,配置generatorConfig.xml文件,进行xml方式的mybatis集成配置,执行java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite
命令自动生成model,mapper和xml映射文件。
10 使用@ControllerAdvice和@ExceptionHandler注解进行error处理,但此方式只是能拦截上下文业务中的异常即springMVC可以处理的异常。当这两个注解无法捕获时,即springMVC无法处理的异常通过继承ErrorController实现捕获异常。
11 使用spring boot进行开发的时候,因为在maven中导入了‘starter-web’依赖,所以springMVC就不需要配置了,直接写controller就可以了。
12 在application.properties配置自定义属性,那么可以通过注解@Value("${xxxx}")获取出来
13 @ResponseBody作用在Controller的方法上,表示序列化,即将当前方法的返回给前段的数据进行Json序列化。 @RequestBody作用在Controller方法的参数上,表示反序列化,即将客服端传入的Json数据反序列化为Java对象。这是为了方便前后端分离。
视频42实现回复列表功能
曾经学习mybatis的时候,实现一对一的时候其实现方式是通过左右连接的sql语句去数据库中查询,将相当于两个表(实体)的对应关系是交给数据库去处理的。而在这个视频中他是分别进行了两个表的where 字段 select出来的。然后将后一个表取出来的数据放入Map中,以两个表(实体)的关联字段作为key,对象作为value。然后通过这个key将两个表(实体)对应起来。
java8中可以快速将内容放入set,list,map中好像还有去重的功能。
Set<Long> commentators = comments.stream().map(comment -> comment.getCommentator()).collect(Collectors.toSet());
Map<Long, User> userMap = users.stream().collect(Collectors.toMap(user -> user.getId(), user -> user));