`
fishswing
  • 浏览: 41772 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

Spring注解学习笔记

阅读更多

 

本人最近因为项目需要使用Spring的注解功能,就在网上找了些资料看看,觉得Spring的注解没那么高深,也很简单的,下面把本人学习的成果整理了一下,供有需要的朋友参考一下。因为初次使用,可能有些地方写得不对,请高手谅解并指正一下哦。

 

1、环境框架:webwork2+spring2.5+hibernate3.3(webwork2可以换成struts2哦)

2、需引入common-annotations.jar包(因为 @Resource注解需要用到此包)

3、webwork2中的action需要使用spring来注入的话,需要在webwork.properties文件中配置webwork.objectFactory=spring(而且不光是Action的注入,涉及Action类中的业务类的注入也需要配置此项,否则报错)

4、spring的基本配置此外省略,只讲注解的配置

5、要使用注解功能,需要在spring的配置文件中加入context命令空间和schema的位置:(在beans中配置)

 

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

        <context:annotation-config/>
     
        ........
</beans>
 

 

 并配置<context:annotation-config/>来简化配置,该配置默认注册了AutowiredAnnotationBeanPostProcessor, CommonAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor 以及equiredAnnotationBeanPostProcessor

   这四个BeanPostProcessor。(如果不这样配置,则将分别配置各种注解的Bean)

6、通过以上配置,就可以使用 @Autowired, @Qualifier, @Resource, @PostConstruct, @PreDestroy等注解了。

@Autowired 按类型自动装配

@Qualifier 只能和 @Autowired结合使用。作用是:在Autowired进行装配时,同时有两个(或以上的)同一类型的Bean配置时,使用 @Qualifier("bean的id")指定注入的名称,使 @Autowired从按类型注入转为按名称注入

@Resource  默认按名称进行装配,如果装配不了,则按类型装配(推荐使用 @Resource来替代 @Autowired)

@PostConstruct  配置在方法上(只能配置在方法上),表示在创建Bean之后将执行的方法

@PreDestroy  配置在方法上(只能配置在方法上),表示在销毁Bean之前将执行的方法

7、以上注解的使用,我们都需要在spring配置文件中配置相应的bean,完成byType和byName的注入。要将bean从配置文件完全移除,可以使用 @Component注释来实现零配置

8、spring2.5在 @Repository的基础上增加了 @Component, @Service, @Controller三个注解,都是标类的(把类配置为bean),分别用于不同的层次:

       @Component  泛化的概念,表示一个组件(Bean),可作用在任何层次(也即如果不能确定层次时使用)

       @Service    作用于业务层的类

       @Controller  作用于控制层的类

       @Repository  作用于数据访问层的类

   通过在类上使用 @Repository、 @Component、 @Service 和 @Constroller 注解,Spring 会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring 受管组件。

9、使用 @Component注解后,spring容器必须使用类扫描机制以启用注释驱动Bean定义和注释驱动Bean的自动注入策略。则必须在spring的配置文件中添加如下配置:

<context:component-scan base-package="com.free"/>    (将会扫描com.free及其子包中的所有类)

10、对类进行扫描时,可以配置扫描指定的包和排除的包。有正则表达式、AspectJ、类和注释等的过滤类型如:

<context:component-scan base-package="com.free">
	    <context:include-filter type="regex" 
		expression="com\.free\.service\..*"/>
	    <context:exclude-filter type="aspectj" 
		expression="com.free.util..*"/>
	</context:component-scan>
 

11、有以下情况也不能完全摒除XML的配置方式:

a、Bean不是自己编写的,如JdbcTemplate或SessionFactory等,必须使用XML进行配置

b、注释往往是类级别的,而XML则更加灵活。比如相比于 @Transaction 事务注释,使用 aop/tx 命名空间的事务配置更加灵活和简单。

c、如果 Bean 的依赖关系是固定的,(如 Service 使用了哪几个 DAO 类),这种配置信息不会在部署时发生调整,那么注释配置优于 XML 配置;反之如果这种依赖关系会在部署时发生调整,XML 配置显然又优于注释配置,因为注释是对 Java 源代码的调整,您需要重新改写源代码并重新编译才可以实施调整。

分享到:
评论

相关推荐

    Spring框架学习笔记

    这份"Spring框架学习笔记"涵盖了Spring框架的基础知识、核心组件以及高级特性,对于初学者来说是一份宝贵的资料。 一、Spring框架概述 Spring框架是为了解决企业应用开发的复杂性而设计的,它提供了一个全面的基础...

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    SpringCloud学习笔记

    【SpringBoot核心特性】 SpringBoot是Spring框架的一个扩展,它旨在简化Spring应用程序的开发过程,...这份学习笔记涵盖了SpringBoot的基础特性和SpringCloud的负载均衡实践,对于深入理解这两个技术有极大的帮助。

    Spring学习笔记&源码

    本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...

    马士兵老师spring框架学习笔记

    马士兵老师是知名的Java教育专家,他的Spring框架学习笔记深入浅出,对于初学者和进阶者来说都是一份宝贵的资源。这份笔记涵盖了Spring的核心概念、配置、AOP(面向切面编程)、DI(依赖注入)等关键知识点。 1. **...

    spring aop 学习笔记

    本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...

    Java Spring框架学习笔记(内附源码).pdf

    在本次的Java Spring框架学习笔记中,将对Spring框架的核心概念进行详细解析,包括Spring的 IOC(控制反转)、AOP(面向切面编程)、jdbcTemplate、事务管理、Spring5新特性以及与Mybatis的整合。本学习笔记提供了...

    spring指南学习笔记

    标题和描述均提到了“spring指南学习笔记”,这意味着文档聚焦于Spring框架的学习心得与关键概念。Spring是一个开源的Java企业级应用框架,以其强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect ...

    spring-boot学习笔记

    ### Spring Boot 学习笔记知识点总结 #### 一、Spring发展史 - **Spring1.x时代**:在Spring1.x的时代,主要通过XML文件来配置Bean。随着项目的规模扩大,XML配置文件的数量也随之增加,这导致开发人员需要频繁地...

    spring框架学习笔记

    开发者可以通过实现接口或使用注解来定制bean的生命周期行为。 面向切面编程(AOP)是Spring的一个重要特性。AOP允许我们在不修改原有代码的情况下,添加如日志记录、安全性、缓存等横切关注点。在Spring中,AOP...

    Spring学习笔记+学习源码.zip

    这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...

    Spring的学习笔记

    以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...

    Spring入门学习笔记|Spring学习.pdf

    Spring入门学习笔记,内容包括Spring介绍,Spring配置文件,Spring配置数据源,Spring的注解开发,Spring集成Junit,Spring的AOP,jdbcTemplate介绍,Spring控制事务流程,Spring集成web。

    spring编程学习笔记

    在"Spring笔记.pdf"、"Spring笔记1.pdf"和"Spring编程学习笔记2.pdf"中,你将找到关于这些概念的详细解释和实例,包括XML配置、注解驱动的编程、AOP的实现方式、Spring Boot的快速启动指南以及Spring MVC的...

    Spring技术内幕 学习笔记

    在学习笔记中,可能会详细讲解如何使用@Autowired、@Qualifier等注解进行依赖注入,以及如何通过XML配置文件或Java配置类来声明依赖关系。 其次,Spring的IoC(Inversion of Control)容器是其核心组件,它负责管理...

    Spring2.5学习笔记

    ### Spring2.5 学习笔记详解 #### 一、Spring 框架简介 Spring 是一个开源的轻量级 Java 开发框架,主要用于简化企业级应用的开发工作。Spring 提供了一系列强大的功能,比如控制反转 (Inversion of Control, IOC)...

    spring2.0学习笔记

    本学习笔记旨在深入探讨Spring 2.0的核心特性,帮助开发者更好地理解和运用这个强大的框架。 1. **依赖注入(Dependency Injection, DI)**:Spring 2.0加强了DI,允许开发者通过XML配置或注解来管理对象间的依赖...

    尚学堂Spring学习笔记

    本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring配置文件的设置、普通属性的注入、自定义属性编辑器、公共属性的注入、Spring注解等内容。 一、Spring配置文件的设置 在MyEclipse中编写Spring配置...

Global site tag (gtag.js) - Google Analytics