发表于: 2018-04-07 12:04:03
1 555
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
整合了slf4j和log4j
添加几个依赖
<!--添加sl4j依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.8.0-beta2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.8.0-beta2</version>
</dependency>
,aop实现日志切面
package com.ev;
import com.ev.controller.StudentController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.util.StopWatch;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Aspect
public class LogAspect {
private static final Logger logger = LoggerFactory.getLogger(StudentController.class);
@Pointcut(value = "execution(public * com.ev.service.StudentServiceImpl.*(..))")
public void service(){}
@Pointcut(value = "execution(public * com.ev.dao.StudentMapper.*(..))")
public void dao(){}
@Pointcut(value = "execution(public * com.ev.controller.StudentController.*(..))")
public void controller(){}
@Around(value = "dao()||service()||controller()")
public Object beforeExecute(ProceedingJoinPoint joinPoint) throws Throwable{
Signature signature = joinPoint.getSignature();
String classname = joinPoint.getTarget().getClass().getSimpleName();
String methodName = joinPoint.getSignature().getName();
List<Object> args = Arrays.asList(joinPoint.getArgs());
logger.info("=================start {}=====================",signature.getName());
StopWatch stopWatch = new StopWatch();
try {
if (stopWatch.isRunning()) {
stopWatch.stop();
}
stopWatch.start(signature.toString());
} catch (IllegalStateException e) {
logger.error("watch start error:", e);
}
Object proceed = joinPoint.proceed();
try {
if (stopWatch.isRunning()) {
stopWatch.stop();
logger.info(stopWatch.prettyPrint()+"\n================= end {}=====================",signature.getName());
}
} catch (IllegalStateException e) {
logger.error("watch end error:", e);
}
return proceed;
}
}
所有的网站都有一些共通的东西:所有的网站都是有网页构成,而且它们彼此分享着共通的结构。这些页面有着共通的布局,但是页面和页面之间又有不同的地方,而且不同的地方通常都在同样的位置。
为了理解这种模式,我们来看一个例子。 下面这个图就是一个比较经典的网页结构。
假如Body块里有一个链接,通过它可以迁移到类似Page2这样的一个页面。就如下图描述的这样。
正如我们看到的, 这两个页面是不同的,但是不同的地方仅仅是Body这部分区域。于是我们想,有没有好的办法能够把共通的地方复用起来,让我们维护的页面尽可能的少。Tiles就是用来帮助我们解决这个问题的。
Spring MVC框架为工程添加Tiles特性很容易,若是Maven项目,直接在pom.xml中添加以下依赖即可:
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>3.0.5</version>
</dependency>
这个就是在springMVC里面的东西,这个就是定义一个依赖关系。
新建一个布局文件,命名为layout.xml,我们要在这个文件里配置网站的布局。(管理网址网页的布局的文件)
明天计划的事情:(一定要写非常细致的内容)
整合tiles
遇到的问题:(遇到什么困难,怎么解决的)
日志的xml配置
收获:(通过今天的学习,学到了什么知识)
需要使用日志门面而不是单独的日志。
评论