注解配置:

1.为主配置文件引入新的命名空间(约束)

preference中引入文件

2.开启使用注解代理配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd ">
<context:component-scan base-package="com.littlepage.entity"></context:component-scan>
</beans>

3.类表名注解

//相当于xml文件配了bean的name为user

@Component("user")//entity层
@Service("user")//service层
@Controller("user")//web层
@Repository("user")//dao层

四个注解一样,但是可以根据注解名字可以了解功能

@Scope("singlenton")

scope功能在上一篇博客中讲过

@Autowared

自动找到相应类

4.运行

sts插件:

1.手动安装(成功率低)

2.使用老师的Eclipse(我选用)

3.spring装好插件的eclipse

Spring的AOP:

AOP名词解释:

Joinpoint(连接点):目标对象中,所有可以增强的方法。(未代理的方法)

Pointcut(切入点):目标对象中,已经增强的方法。(已代理的方法)

Advice(通知/增强):增强的代码

Target(目标对象):被代理对象

Weaving(织入):将通知应用到切入点的过程

Proxy(代理):将通知织入到目标对象之后,形成的代理对象。

Aspect(切面):切入点+通知

AOP:aspect oriented programming

步骤:

1.准备工作,导入aop(约束)命名空间

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd ">

2.配置目标对象

package com.littlepage.entity;

import org.aspectj.lang.ProceedingJoinPoint;

/**
* 通知类
* @author 74302
*
*/
public class MyAdvice {
//前置通知->目标方法运行之前调用
public void before(){
System.out.println("这是前置通知");
}
//后置通知(如果出现异常,不会调用)->目标方法运行之后调用
public void afterReturning(){
System.out.println("这是后置通知");
}
//环绕通知->目标方法之前和之后调用
public Object around(ProceedingJoinPoint pjp) throws Throwable{
System.out.println("这是环绕通知之前的部分!");
Object proceed=pjp.proceed();//调用目标方法
System.out.println("这是环绕通知之后的部分");
return proceed;
}
//异常拦截通知->出现异常,就会调用
public void afterException(){
System.out.println("出现异常!");
}
//后置通知(无论是否出现异常,都会调用)
public void after(){
System.out.println("后置通知,出现异常也会调用");
} }

<bean name="userServiceTarget" class="com.littlepage.service.UserService"></bean>

3.将目标织入对象
<bean name="myAdvice" class="com.littlepage.entity.MyAdvice"></bean>

4.配置将通知织入目标对象

Spring注解配置、Spring aop、整合Junit——Spring学习 day2的更多相关文章

  1. Spring学习之旅(八)Spring 基于AspectJ注解配置的AOP编程工作原理初探

    由小编的上篇博文可以一窥基于AspectJ注解配置的AOP编程实现. 本文一下未贴出的相关代码示例请关注小编的上篇博文<Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AO ...

  2. Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较

    本篇博文用一个稍复杂点的案例来对比一下基于XML配置与基于AspectJ注解配置的AOP编程的不同. 相关引入包等Spring  AOP编程准备,请参考小编的其他博文,这里不再赘述. 案例要求: 写一 ...

  3. 关于Spring注解配置的步骤

    今天分享一下 关于Spring注解配置的流程 1 导包:如下图所示 2 书写User和Car类  代码如下 package cn.lijun.bean; public class Car { priv ...

  4. Spring注解配置和xml配置优缺点比较

    Spring注解配置和xml配置优缺点比较 编辑 ​ 在昨天发布的文章<spring boot基于注解方式配置datasource>一文中凯哥简单的对xml配置和注解配置进行了比较.然后朋 ...

  5. java框架之Spring(2)-注解配置IOC&AOP配置

    注解配置IoC 准备 1.要使用注解方式配置 IoC,除了之前引入的基础 jar 包,还需要引入 spring-aop 支持包,如下: 2.在 applicationContext.xml 中引入 c ...

  6. Spring框架学习之注解配置与AOP思想

         上篇我们介绍了Spring中有关高级依赖关系配置的内容,也可以调用任意方法的返回值作为属性注入的值,它解决了Spring配置文件的动态性不足的缺点.而本篇,我们将介绍Spring的又一大核心 ...

  7. Spring注解配置Aop

    之前学习了SpringAop的基本原理.http://www.cnblogs.com/expiator/p/7977975.html 现在尝试使用注解来配置SpringAop. Aop,面向切面编程. ...

  8. 手动配置三大框架整合:Spring+Struts2+mybatis

    如今主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,事实上它们都是一样的,以下我来把环境搭建一下: [导入相关jar包]新建web项目projectms ...

  9. 浅谈spring——注解配置(九)

    spring定义一个切面是件麻烦的事情,需要实现专门的接口,还要进行一些较为复杂的配置,有没有较为简单的方法??? @AspectJ注解可以很容易定义一个切面,且不需要实现任何的接口.缺点是对JDK的 ...

随机推荐

  1. Php mysql 常用代码、CURD操作以及简单查询

    C/S:Client ServerB/S:Brower Server php主要实现B/S LAMP :Linux系统    A阿帕奇服务器    Mysql数据库   Php语言 mysql常用代码 ...

  2. selenium之css selector定位

    什么是CSS Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议大家安装火狐浏览器(49及以下版本)后,下载插件Fire ...

  3. Linux上几款好用的字幕编辑器

    如果你经常看国外的大片,你应该会喜欢带字幕版本而不是有国语配音的版本.我在法国长大,童年的记忆里充满了迪斯尼电影.但是这些电影因为有了法语 的配音而听起来很怪.如果现在有机会能看原始的版本,我想,对于 ...

  4. java:LeakFilling(面向对象)

    1.类的修饰符只能是:public,默认的.另外:final  ,abstract,(修饰符 (只有:public, 默认,)interface+类名 ). 2.在main函数中创建对象时,new哪个 ...

  5. April.Util更新之权限

    目录 前言 权限 中间层 小结 前言 在之前已经提到过,公用类库Util已经开源,目的一是为了简化开发的工作量,毕竟有些常规的功能类库重复率还是挺高的,二是为了一起探讨学习软件开发,用的人越多问题也就 ...

  6. oop理论

    三大特性: 封装:把对象的属性和行为独立的一个整体,并尽可能的隐藏对象内部实现细节.增加安全性. 继承:从已有的类中派生出新的类,称为子类,子类继承父类的属性和行为,并能根据自己的需求扩展出新的行为. ...

  7. IDEA 一次启动多个微服务模块项目

    1,打开IDEA项目 .idea 下 的workspace.xml 2,查找“RunDashboard” 节点 3,添加如下内容 <option name="configuration ...

  8. 快速生成500W测试数据库

    快速生成500W测试数据库: 创建测试表: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_ ...

  9. hue数据导出

    1/ 执行要下载的sql语句 2/  执行完成后,点击下面导出 3.选择所有 4.选择每个人对应的文件夹,没有自己名称的可以创建一个 5.选择导出 6.右面是导出执行时的界面 7.选择已经执行的文件 ...

  10. Hbase 0.92.1集群数据迁移到新集群

    老集群 hbase(main):001:0> status 4 servers, 0 dead, 0.0000 average load hbase(main):002:0> list T ...