1 springboot 日志
本章参考自springboot指南:https://docs.spring.io/spring-boot/docs/2.2.3.RELEASE/reference/htmlsingle/#boot-features-logging
常用配置项:
# 指定包名下的最低日志等级(默认等级为root:info)
logging.level.包名 = debug
# 指定日志的输出路径,使用的是spring.log作为默认文件
logging.path = /xxx/
#logging.file = /xxx/a.log
# 在控制台输出的日志的格式
# 指定文件中日志输出的格式
logging.pattern.console =
logging.pattern.file =
日志框架分类和选择
大概看看即可:https://www.bilibili.com/video/BV1Et411Y7tQ?p=20
自定义日志配置:
详见springboot指南4.4.6节:
注:
日志框架直接识别:logback.xml
由springboot加载配置(推荐):logback-spring.xml
日志中使用profile进行区分
详见springboot指南4.4.7节:
若想进行profile区分,首先必须使用springboot加载配置方式(logback-spring.xml)
方法:加上<springProfile name="dev"></springProfile >
即可
2 springboot注释汇总
Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用:
https://www.cnblogs.com/fashflying/p/6908028.html
@Conditional注解:
@ConditionalOnBean(A.class)
:
只有当A.class 在spring的applicationContext中存在时 这个当前的bean才能够创建
@ConditionalOnProperty(prefix = "ams", name = "menu.privilege.on", matchIfMissing = true)
:
当配置文件配置ams.menu.privilege.on=false
的时候,被注释的Bean无效。
其中matchIfMissing=true
的意思是:即使没有配置该property时,被注释的Bean也能生效(默认为false,也就是没有配置时会报错)。
详见:https://www.bilibili.com/video/BV1Et411Y7tQ?p=19
AOP的@interface
AOP的@Pointcut
AOP的@ControllerAdvice
详见:https://www.cnblogs.com/lenve/p/10748453.html
该注解可对controller进行增强,一般用在“controller的异常抛出后,跳转到指定页面”
@ControllerAdvice
public class MyGlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ModelAndView customException(Exception e) {
ModelAndView mv = new ModelAndView();
mv.addObject("message", e.getMessage());
mv.setViewName("myerror");
return mv;
}
}
springmvc部分
springboot扩展mvc部分:
https://www.cnblogs.com/javayihao/p/11994400.html
@Controller和@RestController的区别
1.@Controller修饰的Controller类,其方法返回的字符串,会配合视图解析器InternalResourceViewResolver匹配到对应的视图页面,如返回success,则会对应返回success.html或success.jsp等。
2.而@RestController则会返回success字符串,而且是方法返回什么,页面就接收到什么。
当使用@Controller时,需要方法返回JSON字符串,只需要再加上@RequestBody即可。因此,可以认为:
@RestController = @Controller+@RequestBody;