1.spring-boot-configuration-processor 即注释处理器
引入后,当你在application.yml或者application.properties中输入时,会有相应的提示,方便我们写配置文件
2.可以配置静态资源路径,但是不能配置访问静态资源的访问前缀
3.页面显示的小图标只需将favicon.ico放入static包下,静态资源的访问前缀也会影响favicon.ico的图标的显示
4.proxyBeanMethods = false
- Full(proxyBeanMethods = true) :proxyBeanMethods参数设置为true时即为:Full 全模式。 该模式下注入容器中的同一个组件无论被取出多少次都是同一个bean实例,即单实例对象,在该模式下SpringBoot每次启动都会判断检查容器中是否存在该组件
- Lite(proxyBeanMethods = false) :proxyBeanMethods参数设置为false时即为:Lite 轻量级模式。该模式下注入容器中的同一个组件无论被取出多少次都是不同的bean实例,即多实例对象,在该模式下SpringBoot每次启动会跳过检查容器中是否存在该组件
什么时候用Full全模式,什么时候用Lite轻量级模式?- 当在你的同一个Configuration配置类中,注入到容器中的bean实例之间有依赖关系时,建议使用Full全模式
- 当在你的同一个Configuration配置类中,注入到容器中的bean实例之间没有依赖关系时,建议使用Lite轻量级模式,以提高springboot的启动速度和性能
5.注解
@PathVariable 路径变量参数
@PostMapping("/{id}") public void demo(@PathVariable("id") Integer id) { } @RequestAttribute 设置和获取请求域中的值
6.@controller和@restcontroller区别
- @RestController修饰的类会将 return后面的内容字符串的形式返回到@Requestmapping的页面
- @Controller修饰的类会将return的字符串配合视图解析器InternalResourceViewResolver添加上前缀和后缀。跳转到对应的html页面。
- @Controller和@ResponseBody配合作用和@RestController一样
7.编写拦截器的步骤:
(1)编写一个拦截器实现类实现HandlerInterceptor接口
a.preHandler目标方法执行之前
b.postHandle目标方法执行之后
c.请求处理完成以后afterCompletion方法
(2)拦截器注册到容器中实现WebMvcConfigurer并重写addInterceptors方法
a.注册中心添加拦截器registry.addInterceptor(new LoginInterceptor()
b.添加拦截路径addPathPatterns("/**")
c.放行拦截路径(包括静态资源的访问)
(3)指定拦截规则,如果是拦截所有静态资源也会被拦截excludePathPatterns("/login", "/");
8.@EnableWebMvc导致了@WebMvcAutoConfiguration没有生效
9.实体类属性字段上加@Options:useGeneratedKeys(是否是自增长,必须设置 true) 和 keyProperty(实体类主键属性名称) 、keyColumn(数据库主键字段名称)
@component: 标注一个类为Spring容器的Bean,(把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)
10.springboot整合redis
@Component
public class RedisUrlInterceptor implements HandlerInterceptor {
@Autowired
RedisTemplate redisTemplate;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String url = request.getRequestURI();
//默认访问当前的url的路径会加1
redisTemplate.opsForValue().increment(url);
return true;
}
}