本人最近因为项目需要使用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框架是为了解决企业应用开发的复杂性而设计的,它提供了一个全面的基础...
在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...
【SpringBoot核心特性】 SpringBoot是Spring框架的一个扩展,它旨在简化Spring应用程序的开发过程,...这份学习笔记涵盖了SpringBoot的基础特性和SpringCloud的负载均衡实践,对于深入理解这两个技术有极大的帮助。
本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...
马士兵老师是知名的Java教育专家,他的Spring框架学习笔记深入浅出,对于初学者和进阶者来说都是一份宝贵的资源。这份笔记涵盖了Spring的核心概念、配置、AOP(面向切面编程)、DI(依赖注入)等关键知识点。 1. **...
本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...
在本次的Java Spring框架学习笔记中,将对Spring框架的核心概念进行详细解析,包括Spring的 IOC(控制反转)、AOP(面向切面编程)、jdbcTemplate、事务管理、Spring5新特性以及与Mybatis的整合。本学习笔记提供了...
标题和描述均提到了“spring指南学习笔记”,这意味着文档聚焦于Spring框架的学习心得与关键概念。Spring是一个开源的Java企业级应用框架,以其强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect ...
### Spring Boot 学习笔记知识点总结 #### 一、Spring发展史 - **Spring1.x时代**:在Spring1.x的时代,主要通过XML文件来配置Bean。随着项目的规模扩大,XML配置文件的数量也随之增加,这导致开发人员需要频繁地...
开发者可以通过实现接口或使用注解来定制bean的生命周期行为。 面向切面编程(AOP)是Spring的一个重要特性。AOP允许我们在不修改原有代码的情况下,添加如日志记录、安全性、缓存等横切关注点。在Spring中,AOP...
这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...
以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...
Spring入门学习笔记,内容包括Spring介绍,Spring配置文件,Spring配置数据源,Spring的注解开发,Spring集成Junit,Spring的AOP,jdbcTemplate介绍,Spring控制事务流程,Spring集成web。
在"Spring笔记.pdf"、"Spring笔记1.pdf"和"Spring编程学习笔记2.pdf"中,你将找到关于这些概念的详细解释和实例,包括XML配置、注解驱动的编程、AOP的实现方式、Spring Boot的快速启动指南以及Spring MVC的...
在学习笔记中,可能会详细讲解如何使用@Autowired、@Qualifier等注解进行依赖注入,以及如何通过XML配置文件或Java配置类来声明依赖关系。 其次,Spring的IoC(Inversion of Control)容器是其核心组件,它负责管理...
### Spring2.5 学习笔记详解 #### 一、Spring 框架简介 Spring 是一个开源的轻量级 Java 开发框架,主要用于简化企业级应用的开发工作。Spring 提供了一系列强大的功能,比如控制反转 (Inversion of Control, IOC)...
本学习笔记旨在深入探讨Spring 2.0的核心特性,帮助开发者更好地理解和运用这个强大的框架。 1. **依赖注入(Dependency Injection, DI)**:Spring 2.0加强了DI,允许开发者通过XML配置或注解来管理对象间的依赖...
本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring配置文件的设置、普通属性的注入、自定义属性编辑器、公共属性的注入、Spring注解等内容。 一、Spring配置文件的设置 在MyEclipse中编写Spring配置...