发表于: 2018-04-07 12:04:03

1 557


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了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;

   }
}


所有的网站都有一些共通的东西:所有的网站都是有网页构成,而且它们彼此分享着共通的结构。这些页面有着共通的布局,但是页面和页面之间又有不同的地方,而且不同的地方通常都在同样的位置。

为了理解这种模式,我们来看一个例子。 下面这个图就是一个比较经典的网页结构。

Tiles框架简介

假如Body块里有一个链接,通过它可以迁移到类似Page2这样的一个页面。就如下图描述的这样。

The body changes, while the rest remains the same.

正如我们看到的, 这两个页面是不同的,但是不同的地方仅仅是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配置 

收获:(通过今天的学习,学到了什么知识)

需要使用日志门面而不是单独的日志。


返回列表 返回列表
评论

    分享到