spring2.5 注解

spring-context-2.5.6.jar 立即下载

 转自 :http://blog.youkuaiyun.com/ELuYouNi/archive/2009/05/08/4162183.aspx

2009-11-16 14:30:44

1.准备工作
(1)导入common-annotations.jar
(2)导入schema文件 文件名为spring-context-2.5.xsd
(3)在xml的beans节点中配置
<?xml version="1.0" encoding="UTF-8"?>
<beans 
       .......
       xmlns:context="http://www.springframework.org/schema/context "

       xsi:schemaLocation="
           .......
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd "  >

.....
   <!--将针对注解的处理器配置好  -->
  <context:annotation-config />
.....
<beans>

2.在java代码中使用@Autowired或@Resource注解方式进行装配 ,这两个注解的区别是:
@Autowired默认按类型装配,@Resource默认按名称装配,当找不到名称匹配的bean才会按类型装配。


默认注解
@Resource  private PersonDao persondao;
<bean id="personDao" class="com.hf.dao.impl.PersonDaoBean"></bean>
首先是判断persondao是否与xml里的personDao名字相同,相同则注入,
不同则判断persondao是否是com.hf.dao.impl.PersonDaoBean类型,是则注入不是则返回null.

@Resource(name="personDao")  private PersonDao dao;
<bean id="personDao" class="com.hf.dao.impl.PersonDaoBean"></bean>
判断name名称是否与bean中id相同不同则返回null

Spring自带注解方式
@Autowired @Qualifier("personDao") private PersonDao persondao;
默认是按类型注入  加上@Qualifier("personDao")则按名称注入

3.通过在classpath 自动扫描方式把组件纳入spring容器中管理
spring2.5为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Component @Service @Controller @Repository
注解的类,并将这些类纳入进spring容器中管理。它们的作用和xml文件中使用bean 节点配饰组件是一样的。
(1)使用到了注解的功能(需要注解准备工作的内容)
(2)在xml中加入
<context:component-scan base-package="com.hf" />
其中base-package 为需要扫描的包(包含子包)
(3)
@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件 ,即DAO 组件
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

(4)
业务类
@Service
public class PersonServiceBean implements PersonService {.....}
输出类
AbstractApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");
PersonService personService= (PersonService)cxt.getBean("personServiceBean");
System.out.println(personService);
cxt.close();
使用注解中bean的id默认名称为类名称的首字母小写名称
--------------------------------------------------
自己指定名称
@Service("aa") //默认作用域范围 是单例范围
public class PersonServiceBean implements PersonService {.....}
输出类
AbstractApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");
PersonService personService= (PersonService)cxt.getBean("aa");
System.out.println(personService);
cxt.close();
--------------------------------------------------
@Service("aa") @Scope("prototype")//修改bean的作用域
public class PersonServiceBean implements PersonService {....}


-----------------------------------------------------------
   @PostConstruct
   public void init(){ 
    System.out.println("初始化");
   }
   @PreDestroy
   public void destory(){  
    System.out.println("释放资源");
   }

4.AOP注解方式
(1)准备工作:
.导入common-annotations.jar  aspectjrt.jar aspectweaver.jar cglib-nodep-2.13.jar
.导入schema文件 文件名为spring-aop-2.0.xsd
.在xml的beans节点中配置
<?xml version="1.0" encoding="UTF-8"?>
<beans 
       .......
       xmlns:aop="http://www.springframework.org/schema/aop "

       xsi:schemaLocation="
           .......
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd "  >

.....
    <!-- 配置解释处理器 为@AspectJ注解提供支持  -->
  <aop:aspectj-autoproxy />
.....
<beans>

(2)
<bean id="myInterceptor" class="com.hf.service.impl.MyInterceptor"></bean>
<bean id="personService" class="com.hf.service.impl.PersonServiceBean" ></bean>
将切面和被拦截的类交给spring管理
(3)切面类

@Aspect //定义切面类
public class MyInterceptor {
   /**
    *  @Pointcut("execution(* com.hf.service..*.*(..))")表达式含义
    * 第一个* 表示返回值类型为任意类型
    * com.hf.service..  两个点表示包路径下的子包的类也要拦截
    * com.hf.service..*.* 子包的所有类中的所有方法 第一个*是方法第二个*是类
    * (..)代表方法参数随意 可有可无可多可少
    * **/

   @Pointcut("execution (* com.hf.service.impl.PersonServiceBean.*(..))")// 定义切入点
   private void andMethod()//声明一个切入点
   {}
  
/*   @Before("andMethod()")
   public void doAccessCheck(){
    System.out.println("前置通知");   
   }
   */
  
   @Before("andMethod() && args(name)") //带参数 只拦截符合参数类型的方法
   public void doAccessCheck(String name){
    System.out.println("前置通知"+name);   
   }
  
  
/*   @AfterReturning("andMethod()")
   public void doFaterReturning(){   
    System.out.println("后置通知");
   }*/
  
   @AfterReturning(pointcut="andMethod()",returning="result")//带返回值的 无返回值的方法 result为null
   public void doFaterReturning(String result){//拦截方法执行后 获取返回值对象
    System.out.println("后置通知:"+result);
   }
  
  
   @After("andMethod()")
   public void doAfter(){
    System.out.println("最终通知"); 
   }
  
/*   @AfterThrowing("andMethod()")
   public void doAfterThrowing(){   
    System.out.println("例外通知");
   }*/
  
   @AfterThrowing(pointcut="andMethod()" , throwing="e") //获取例外并打印
   public void doAfterThrowing(Exception e){  
    System.out.println("例外通知:"+e);
   }
  
  
   @Around("andMethod()")//环绕通知
   public Object doBasecProfiling(ProceedingJoinPoint pjp )throws Throwable{
   //if(){//判断是否与权限
    System.out.println("进入通知");
    Object result = pjp.proceed();
    System.out.println("离开 通知");
   //}
    return result;
   
   
   }
}

(4)业务类 PersonServiceBean
public class PersonServiceBean implements PersonService {

 public void save(String name){
      throw new RuntimeException("纯属例外");
      // System.out.println("我是Save方法"+name);
    }
 public String update() { 
  return "我是update方法";
 }
}
----------------------------------------------------------

 

 

common-annotations.jar包 spring2.5.6框架中的common-annotations.jar包 立即下载

相关推荐

spring-context-2.5.xsd

spring-context-2.5.xsd用于DI开发代码提示。用于Java开发。版本略旧些

Spring的配置(使用注解)

本文介绍了Spring框架中基于注解的依赖注入配置方式。主要内容包括:1)Spring配置方式的演进过程,从XML到XML+注解再到纯注解配置;2)核心注解的使用方法,如@Component及其衍生注解用于类注入,@Value用于基本数据注入,@Autowired用于自动装配;3)特殊注解的应用场景,包括@Primary处理类型冲突、@Qualifier/@Resource按名称装配、@Scope配置作用域等。

W18263823008的博客 1045

Spring2.5的新特性:配置简化和基于注解的功能

简介从诞生之初,Spring框架就坚守它的宗旨:简化企业级应用开发,同时给复杂问题提供强大的、非侵入性解决方案。一年前发布的Spring2.0就把这些主题推到了一个新的高度。XMLSchema的支持和自定义命名空间的使用大大减少了基于XML的配置。使用Java5及更新版本java的开发人员如今可以利用植入了像泛型(generic)和注解等新语言特性的Spring库。最近,和AspectJ表达式语言的紧密集成,使得以非侵入方式添加跨越定义良好的Spring管理对象分组的行为成为可能。新发布的Spring2.5继续坚持了这个发展趋向,特别是为那些使用Java5或更新版本java的开发人员提供了进一

Spring2.5 注解介绍(3.0通用)

<br />【分享】Spring2.5 注解介绍(3.0通用)<br />Auther: 韩群峰Version: 1.0.0 Date: 2011-03-15 <br /><br /><br /> 注解说明<br />•注册注解处理器<br />•方式一:bean<br /><bean class="org.springframework.beans.factory.annotation.<br />AutowiredAnnotationBeanPostProcessor"/><br /><br /><br

kangojian的专栏 1762

医学影像弹性形变处理

这段代码的主要流程是:读取 DICOM 医学影像,尝试使用 MONAI 进行弹性形变(根据版本适配),如果失败则使用 OpenCV 实现,最后可视化并保存处理结果。这样可以在不同环境下灵活处理医学影像的弹性形变需求。后面会写一篇解释弹性变形方法的短文。

wh_xia_jun的专栏 779

Java实战:绿盾加密文件批量解密工具Ldterm的实现与优化

本文详细介绍了基于Java开发的绿盾加密文件批量解密工具Ldterm的实现与优化过程。通过分析绿盾加密机制,结合Java流处理能力,实现了高效的文件解密方案,并分享了多线程处理、内存优化等性能提升技巧,适用于企业级数据迁移与备份场景。

weixin_29314405的博客 492

使用 Spring 2.5 基于注解驱动的 Spring MVC

概述继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到了进一步

919

Java农产品质量溯源大数据管理系统源码

产品追溯基于“一物一码”从工厂生产环节至销售阶段,赋予产品唯一的数码,并关联产品名称、批号、生产时间等信息,建立包装关联关系,为后期产品的追溯、营销搭建信息基础。 农产品溯源,从原材料收购、生产、加工质检到包装运输、终端门店销售等环节追溯,可以保证产品质量,监管部门和消费者都可以查询产品信息。对生产进行层层把关、一旦发现问题、立即进行处理、提升产品质量。

xingchen优快云的博客 1805

Spring2.5注解介绍

【分享】Spring2.5注解介绍(3.0通用) Auther: 韩群峰Version: 1.0.0Date: 2011-03-15  注解说明 • 注册注解处理器 • 方式一:bean AutowiredAnnotationBeanPostProc

飘飘一页的专栏 670

睿思综述智能体:100篇高质量文献一键生成万字长文,还能联网PubMed,科研效率拉满!

对一个主题进行文献综述,是日常科研人绕不过去的工作,无论是写论文前言,综述论文,或者基金申请书的立项依据,需要根据主题,从海量文献中提取相关信息,梳理出清晰的逻辑线,再组织成流畅的文字。4 一键生成万字全文:大纲确认后,它会基于对所有论文的深度理解,逐个章节进行详细撰写,最终生成一篇逻辑连贯、内容翔实、引用规范的万字综述长文,并直接保存为Word(.docx)文件。3 智能撰写大纲:你可以提供自己的大纲,也可以让它根据所有文献内容,智能生成一个逻辑清晰的综述大纲,并支持你在此基础上修改。

dinaxuejie的博客 821

方差迭代计算公式

方差迭代计算过程推导术语约定递推公式过程推导 术语约定 (1)En=1n∑i=1nxi E_n =\frac{1}{n} \sum_{i=1}^{n}x_i \tag{1} En​=n1​i=1∑n​xi​(1) (2)F(n)=∑i=1n(x2−En) F(n) = \sum_{i=1}^{n}{(x^2-E_n)} \tag{2} F(n)=i=1∑n​(x2−En​)(2) (3)V(n)...

weixin_44479136的博客 7921

Spring2.5 注解学习

Spring2.5注解(标注)学习笔记 想深入的学习springside,并且由于项目的需要,和在项目中深切体会到大量的标签的繁琐。故学习起spring的注解。一句话:对开发人员来说:最常用的Spring2.5最常用的注解就4个:@Resource   @Qualifier   @Service  @Repository 由于项目中用到的是spring 2.5,和原来的spri

技术永远致力于应用 3326

无刷电机控制避坑指南:六步换向 vs FOC的5个关键差异

本文深入对比了无刷电机控制中六步换向与FOC(磁场定向控制)的五大核心差异。从控制逻辑、性能表现、效率能耗、硬件成本到应用场景,详细解析了FOC如何通过矢量合成实现平滑的正弦波控制与更高效率,而六步换向则以低成本实现简单开关驱动。旨在帮助工程师根据项目需求,在性能、成本与复杂度间做出最佳选择。

weixin_29216957的博客 507

spring2.5注解介绍之二

原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/index.html 使用 Spring 2.5 基于注解驱动的 Spring MVC   基于注解的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,为 Spring MVC 提供了完全基于注解的配置。本文将介绍 Sprin...

hanqunfeng的专栏 109

智能车数字图像处理算法入门及C语言实现

智能车图像的最最基本入门算法介绍及C语言实现,二值化 - 特征识别 - 补线 - 中心巡线 - 偏差曲率计算。

不想随波逐流的大学生一枚,我们每个人都在努力奔跑 5110

BK3296蓝牙音频SoC深度评测:如何用这颗芯片打造超低功耗TWS耳机?

本文深度评测BK3296蓝牙音频SoC在TWS耳机中的应用,重点解析其22nm工艺带来的超低功耗优势(A2DP模式仅2.8mA)和3×3mm封装设计。通过芯片架构分析、双麦降噪调优及开发套件使用指南,为工程师提供打造高性能TWS耳机的完整解决方案,显著提升续航和音频质量。

rice5的博客 656

使用spring 2.5 基于注解驱动的spring mvc

概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到

About VincentCao,About Future... 891

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring2.5注解式的配置

最近通过找资料研究了一下Spring2.5 AOP注解式事务的配置.发现确实比以前写XML简单的多.ApplicationContext_common.xml的代码如下 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSch

冰源的专栏 753

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Spring 2.5 MVC中基于注解的Controller控制器

Spring 2.5 MVC中基于注解的Controller控制器         Spring 2.5发行版本中,开始相对比较全面的支持注解,通过注解可以大大简化Java EE应用开发的配置、精简开发人员的工作量从而提高开发效率。对于Spring MVC而言,我认为注解带来的好处更多: 1. 开发人员对Controller的代码实现变得更加灵活,不需要继承任何AbstractControl...

liyuandong的博客 331

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

下一篇: Jquery操作select
SuperBoo
博客等级 码龄18年 22粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值