Home avatar

ISLAND

Spring学习记录(二)

AOP简述

面向切面编程,扩展功能不修改源代码实现。AOP采用横向抽取机制,取代了传统的纵向继承体系重复代码。

AOP底层原理

AOP操作相关术语

  • 链接点:类里面的被增强的方法。
  • 切入点:类里面的增强的方法,在实际操作中,实际增强的方法叫切入点。
  • 通知/增强:增强的逻辑,称为增强,比如扩展日志功能,这个日志功能称为增强。 前置通知:在方法之前执行 后置通知:在方法之后执行 异常通知:出现异之后执行 最终通知:在后置之后执行 环绕通知:在方法之前和之后执行
  • 切面:把增强应用到具体的方法上面,这个过程称为切面。把增强用到切入点的过程。

Spring的AOP操作

在Spring进行aop操作,使用Aspectj框架,这个框架本身不是Spring的一部分,只是一起使用进行AOP操作。

Log4j使用

简介

通过log4j可以看到程序运行时候更加详细的信息。

使用

  1. 导入log4j的jar包
  2. 复制log4j的配置文件

一个简单的log4j的配置文件

### 设置日志等级 ###
log4j.rootLogger=info, stdout
### 输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
#log4j.appender.stdout=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### 输出到日至文件
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/home/youngxhui/IdeaProjects/SpringDemo/spring-aop-xml/src/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%{ABSOLUTE} %5p %c{1}:%L - %m%n

设置日志级别

  • info:基本信息
  • debug:更详细的信息

实例

Spring学习(一)

Spring学习笔记,仅供自己参考。

概述

  1. Spring是开源的轻量级框架。
  2. Spring核心主要为两部分: (1).AOP:面向切面编程 (2).IOC:控制反转: 把对象的创建不是通过new的方式实现,而是交给spring配置创建类对象
  3. Spring是一站式框架。 Spring在JavaEE三层结构中,每一层都提供不同的解决技术。
  • web层:SpringMVC
  • service层:Spring的ioc
  • dao层:Spring的jdbcTemplate
  1. Spring版本:4.x

接口

  • 用于沟通的中介勿的抽象化。
  • 对外声明。
  • Java 8中接口可以拥有方法体。

面向接口编程

  • 结构设计中,分清层次及调用关系,每层只能向外提供一组功能接口,更层次仅依赖接口而非实现类。
  • 接口实现的变动不影响各层的调用。
  • 隐藏具体实现和实现多态性的组件。

IOC 控制反转

控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。 把对象的创建交给spring进行管理

Junit单元测试

什么是Junit

什么是Junit,Junit是用于java代码单元测试的框架。

为什么要用Junit

简单的说,我们在写java代码的时候每次写完一个类,都要写一个public static void main(String args[])的方法来进行方法的调用,写完之后再删除,如果类比较多那么我们所创建的方法也比较多,操作起来比较麻烦。而Junit就是为了解决这种情况,他可以在一个类里面创建多个可运行的方法,来进行测试,这便是我们所使用Junit的原因。

Maven入门

什么是Maven

Maven是一个跨平台的项目管理工具,主要用于基于Java平台的项目构建,依赖管理。

maven的生命周期和功能

maven之前的项目管理一般为 ant。

Maven的作用

Maven的出现时为了解决项目的一些问题:

  1. 如果有好几个项目,这好几个项目中,需要用到很多相同的jar包, 能不能只建立一个仓库来解决这个问题?
  2. 测试方法能不能全部运行呢?
  3. 怎么样把一个模块的功能放入到仓库中

Maven的安装和配置

jdk要求1.7+

2016年终总结

忙完了考试,课程设计,大创答辩,终于可以静下心来写一写今年的年终总结。

0x01 概况


只能感叹时光飞逝,一年又一年啊,记得去年写这个总结的时候还是在宿舍,午后阳光。那时刚好,今年写总结的地点已经变为了实验室。来说说这一年是怎么过来的吧。