一.注解
- 注解存在的意义:简化 xml 文件的开发.
- 注解在 servlet 3.0 规范之后大力推广的.
- 注解前面的@XXX,表示引用一个@interface
3.1@interface 表示注解声明 - 注解可以有属性,因为注解其实就是一个接口(类)
4.1 每次使用注解都需要导包 - 注解语法: @XXXX(属性名= 值)
- 值的分类
6.1 如果值是基本数据类型或字符串: 属性名=值
6.2 如果值是数组类型: 属性名={值,值}
6.2.1 如果只有一个值可以省略大括号
6.3 如果值是类类型,属性名=@名称 - 如果注解只需要给一个属性赋值,且这个属性是默认属性,可以省略
属性名
二. 路径
- 编写路径为了告诉编译器如何找到其他资源.
- 路径分类
2.1 相对路径: 从当前资源出发找到其他资源的过程
2.2 绝对路径: 从根目录(服务器根目录或项目根目录)出发找到其
他资源的过程
2.2.1 标志: 只要以/开头的都是绝对路径 - 绝对路径:
3.1 如果是请求转发 / 表示项目根目录(WebContent)
3.2 其他重定向,<img/> <script/>,<style/>,location.href
等/都表示服务器根目录(tomcat/webapps 文件夹) - 如果客户端请求的控制器,控制器转发到JSP后,jsp中如果使用相对
路径,需要按照控制器的路径去找其他资源.
4.1 保险办法:使用绝对路径,可以防止上面的问题.
三. Log4J
- 由 apache 推出的开源免费日志处理的类库.
- 为什么需要日志:
2.1 在项目中编写 System.out.println();输出到控制台,当项目发布
到 tomcat 后,没有控制台(在命令行界面能看见.),不容易观察一些
输出结果.
2.2 log4j 作用,不仅能把内容输出到控制台,还能把内容输出到文件
中.便于观察结果. - 使用步骤:
3.1 导入 log4j-xxx.jar
3.2 在 src 下新建 log4j.properties(路径和名称都不允许改变)
3.2.1 ConversionPattern :写表达式
3.2.2 log4j.appender.LOGFILE.File 文件位置及名称(日志文件扩展名.log)
log4j.rootCategory=DEBUG, CONSOLE ,LOGFILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %d{YYYY-MM-dd-hh:mm:ss} %m %n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=E:/my.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %m %L %n
-
log4j 输出级别
4.1 fatal(致命错误) > error (错误) > warn (警告) > info(普通信息) > debug(调试信息)
4.2 在 log4j.properties 的第一行中控制输出级别
-
log4j 输出目的地
5.1 在一行控制输出目的地
-
pattern 中常用几个表达式
6.1 %C 包名+类名
6.2 %d{YYYY-MM-dd HH:mm:ss} 时间
6.3 %L 行号
6.4 %m 信息
6.5 %n 换行
四. 标签
- 在 mybatis 全局配置文件中通过
<settings>
标签控制 mybatis 全局开关 - 在 mybatis.xml 中开启 log4j
2.1 必须保证有 log4j.jar
2.2 在 src 下有 log4j.properties
<!-- <settings> 位于<environments default="default">上方,不然报Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 29; columnNumber: 17;
元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,
objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,
mappers?)"。-->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
- log4j 中可以输出指定内容的日志(控制某个局部内容的日志级别)
3.1 命名级别(包级别): namespace 属性中除了最后一个类名
例如 namespace=”com.bjsxt.mapper.PeopleMapper” 其中包级别为com.bjsxt.mapper ,需要在 log4j.propeties 中
3.1.1 先在总体级别调成 Error 不输出无用信息
3.1.2 在设置某个指定位置级别为 DEBUG
3.2 类级别
3.2.1 namespace 属性值 ,namespace 类名
3.3 方法级别
3.3.2 使用 namespace 属性值+标签 id 属性值