发表于: 2017-10-16 23:39:24

1 630


今天完成的任务:

1.学习aop在项目中使用。

oop的编程过程中可能会产生很多重复的代码散落在程序的各个地方,会导致代码不整洁,可读性降低,并不利于重用,比如任务中用到的打印日志的功能。如果我们使用普通的oop的方法,就需要在需要打印日志的地方都加上一句loginfo()这样的话,日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。

 

AOP编程即面向切面编程,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。

 

我自己的理解就是将日志中重复需要写的代码拿出来,然后用一个方法指定在需要的地方打印日志。这样的好吃是减少了重复的代码。也更加方便的管理代码,另外在需要添加或者删除某些地方的日志的时候不需要修改源码。

 

查看了师兄们的日报,然后终于照猫画虎,实现了AOP的内容。

首先是获取时间的方法。需要新建一个类Advice()

public class Advice {
   
private static Logger logAdvice =Logger.getLogger(Advice.class);
    public
Object around(ProceedingJoinPoint pjp) throws Throwable{
        String className =pjp.getTarget().getClass().getName()
;
       
//获取组件类名
       
String method =pjp.getSignature().getName();
       
//获取调用方法名
       
long begin=System.currentTimeMillis();
       
//获取数据库连接前的时间
       
String date=new SimpleDateFormat("yyyy-mm-dd:mm:ss").format(new Date());
       
Object object=pjp.proceed();

        long
end=System.currentTimeMillis();
       
//数据库连接后的时间
       
int sqlTime=(int)(end-begin);
       
String mesg=date +",执行了"+className +"."+method+"()";
       
logAdvice.warn(mesg+"数据库响应时间:"+sqlTime);
        return
object;
   
}
}

 

 

 

 

然后是配置文件

    <bean id="Advice" class="comNaNteng.util.Advice"/>
    <
aop:config>
        <
aop:pointcut id="aspect" expression="execution(* comNaNteng.service.impl.*.*(..))"/>
        <
aop:aspect id="chen" ref="Advice">
        <
aop:around method="around" pointcut-ref="aspect"/>
        </
aop:aspect>
    </
aop:config>
</beans>

最后是显示的日志。

整理一下AOP的标签。

2.学习了一波idea上面下载文件和上传文件。

想记录一下:

首先在setting里面-------versioncontrol------subversion  界面上的勾全部都取消掉

然后

进去以后

输入url,再输入账号密码。就可以看到了目录。

上传文件首先

然后再点击vcs上传的图标,可以commit你的项目。

3.项目问题解决。

项目发布过了以后不知道为什么添加和编辑界面都不能正常跳转,可能是这两个方法有点问题。提示出错是add 方法在服务器上找不到。

/addInto was not found on this server.

https://ptteng.github.io/PPT/PPT-java/java-task1-interfaceimplement.html

明天计划:

做任务三的最后一步,编写脚本统计时间。

遇到问题:

就是项目在服务器上需要输入项目名才可以访问,这样导致了添加和修改不能使用。

 

收获:

学习了AOP的知识。然后项目也基本可以了。

禅道:

任务三第八天

 http://task.ptteng.com/zentao/task-view-10337.html



返回列表 返回列表
评论

    分享到