关于IntelliJ IDEA错误的预判
问题1:使用Lombok后,不会自动提示Setter和Getter,且使用相当方法后提示错误
在IntelliJ IDEA中安装Lombok插件即可。
问题2:使用Mybatis时,尝试自动装配Mapper接口的对象时提示错误
- 【推荐】在Mapper接口上添加
@Repository
注解即可 - 【不推荐】使用
@Resource
替换@Autowired
另外,不使用@MapperScan
,而是在每个Mapper接口上使用@Mapper
也可以解决此问题!
问题3:在配置SQL的XML中,使用<sql>
节点封装字段列表时提示错误
-
【不推荐】在IntelliJ IDEA中进行配置,不检查SQL
-
【推荐】使用某种合法的、不影响当前代码运行的代码片段,“骗”过IntelliJ IDEA即可,例如:
<sql id="StandardQueryFields"> <if test="true"> id, name, pinyin, logo, description, keywords, sort, sales, product_count, comment_count, positive_comment_count, enable </if> </sql>
关于SLF4j日志
在Spring Boot项目中,在spring-boot-starter
依赖项中,默认已经集成了SLF4j日志框架。
在添加了Lombok
依赖项后,可以在需要输出日志的类上添加@Slf4j
注解,则Lombok框架会在编译期自动添加名为log
的日志变量。
日志的显示级别,根据日志信息内容的重要程度,从低到高依次为:
trace
:跟踪信息debug
:调试信息info
:一般信息warn
:警告信息error
:错误信息
在SLF4j中,调用log
变量时,有以上5种级别对应的方法,调用与日志显示级别对应的方法,则输出的日志就是对应的级别,例如调用log.debug()
时,输出的日志就是DEBUG级别的日志,调用log.warn()
时,输出的日志就是WARN级别的日志。
在Spring Boot项目中,默认的显示级别是info
,相比info
较低级别的日志不会被输出!
在Spring Boot项目中,可以在application.properties
中通过logging.level.包名
属性来设置日志的显示级别:
# 日志的显示级别
logging.level.cn.tedu.csmall=trace
关于以上配置:
- 包名部分,必须至少写1级包名,例如
logging.level.cn
,如果没有包名,则是错误的 - 配置的包名是”根包“,所以子孙包及其下的所有类的日志都会是以上配置的级别
- 如果认为有必要的话,甚至可以配置到具体的类
使用日志的好处:
- 可以通过简单的配置,实现控制日志的显示级别,所以,可以使得某些日志仅开发时能输出,在生产环境中不会输出
- 使用日志时,可以使用常量字符串,输出结果中的变量值均在此常量字符串中使用占位符表示即可,所以,字符串的处理效率非常高,并且,代码简洁
3. 关于Spring MVC
Spring MVC框架主要解决了接收请求、响应结果的相关问题。
在Spring Boot项目中,当需要使用Spring MVC框架及相关的功能时,应该添加spring-boot-starter-web
依赖项。由于spring-boot-starter-web
是基于spring-boot-starter
依赖项的,所以,spring-boot-starter-web
包含了spring-boot-starter
,在实际编码时,只需要将spring-boot-starter
改为spring-boot-starter-web
即可。
当添加了spring-boot-starter-web
依赖项后,当启动项目时,默认情况下,就会自动将当前项目编译、打包并部署到内置的Tomcat中,并启动Tomcat,默认占用8080
端口。
如果需要修改默认占用的端口号,可以在application.properties
中配置server.port
属性,例如:
# 服务端口
server.port=9080