`
yinxuchina
  • 浏览: 43438 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

使用注解对对象进行依赖注入

阅读更多

     spring2.5支持使用注解对对象进行依赖注入,这样就不用写一大推的XML配置文件,并且java代码里不用写setter方法了。这种写法比较优雅。

     在java代码中使用@Resource和@Autowired方式进行装配,但是需要XML配置一下信息:

<?xml version="1.0" encoding="UTF-8"?>
<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>

 

    实际上比普通的spring文件多了一个命名空间和schema的地址

            xmlns:context="http://www.springframework.org/schema/context" 

           http://www.springframework.org/schema/context

           http://www.springframework.org/schema/context/spring-context-2.5.xsd

 并且需要引入spring文件下的lib\j2ee\common-annotations.jar 这个包。

 

在java代码中使用@Resource和@Autowired方式进行装配,但是要注意两者区别

@Autowired 与@Resource的区别:

 

 1、 @Autowired与@Resource都可以用来装配bean.  都可以写在字段上,或写在setter方法上。

 2、 @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:

 

 

@Autowired() @Qualifier("baseDao")
private BaseDao baseDao;

 

 

 3、@Resource(这个注解属于J2EE的),默认安装名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。

@Resource(name="baseDao")
private BaseDao baseDao;

 

推荐使用:@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与spring的耦合。这样代码看起就比较优雅

 


 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Spring依赖注入——java项目中使用spring注解方式进行注入.rar

    4. `@Inject` 注解:来自JSR 330规范,Spring也支持此注解进行依赖注入,与`@Autowired`类似,但不支持属性级别的注入。 三、使用注解注入的步骤 1. 创建Bean:首先,你需要在Spring配置文件中声明你的bean,或者...

    使用反射和注解模拟Spring的依赖注入

    Spring框架广泛使用注解进行组件扫描和依赖注入,比如`@Component`用于标记一个类作为Spring管理的bean,`@Autowired`则用于自动装配依赖。 模拟Spring的依赖注入,我们可以创建一个简单的容器类,它使用反射来扫描...

    Spring Ioc 注解 依赖注入

    #### 四、使用注解进行依赖注入 随着Spring框架的发展,除了XML配置之外,Spring还引入了注解的方式来简化依赖注入的过程。下面介绍几种常用的依赖注入相关的注解: - **@Component**:用于标记一个普通的Java类为...

    spring依赖注入底层详解

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的底层实现机制。 首先,我们要...

    c# 依赖注入 控制反转

    ### C# 依赖注入 控制反转 #### 一、IoC(控制反转)简介 IoC,即"Inversion of Control"(控制反转),是软件工程领域的一个重要概念,特别是面向对象编程中的一个关键设计原则。从字面上理解,IoC指的是程序运行...

    一个轻量级的PHP依赖注入框架

    而依赖注入则是通过外部将依赖对象传递给需要它的类,而不是由类自己去创建或查找。这样做的好处在于,类不再直接控制其依赖项的生命周期,而是依赖于容器来管理和提供这些依赖。 iiDestiny依赖注入框架,正如其名...

    详解Spring基于Annotation的依赖注入实现

    在深入探讨Spring框架中基于注解(Annotation)的依赖注入(Dependency Injection,简称DI)实现之前,我们首先需要理解几个核心概念:Spring框架、依赖注入、以及注解本身。 ### Spring框架简介 Spring框架是一个...

    第三章 Spring4 依赖注入

    2. 可测试性:依赖注入使对象更容易被隔离,方便进行单元测试。 3. 易于管理:通过Spring容器,可以集中管理和控制所有对象及其依赖。 四、使用注解和XML配置 Spring4支持注解驱动的依赖注入,如`@Autowired`、`@...

    模仿Spring依赖注入

    依赖注入的核心思想是,一个对象不应该自行创建或查找它所依赖的对象,而是由外部容器(如Spring IoC容器)负责管理和提供这些依赖。通过这种方式,对象间的耦合度降低,因为它们不再直接引用彼此,而是通过接口来...

    spring依赖注入

    而在Java配置中,可以使用`@Component`、`@Service`、`@Repository`和`@Controller`注解标记bean,使用`@Autowired`注解来进行依赖注入。 在提供的案例"springdi01"中,可能包含了Spring DI的示例代码。通常,这个...

    Spring依赖注入使用静态工厂设注入demo

    本篇将详细讲解如何使用静态工厂方法进行依赖注入,结合提供的"SpringIOCTest3"项目进行说明。 首先,理解依赖注入的基本概念。依赖注入是指在运行时,由容器(如Spring IoC容器)负责创建对象并管理这些对象之间的...

    spring学习:依赖注入的几种方式讨论

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本文将深入探讨Spring中的依赖注入实现方式,以及如何通过样例文件...

    Spring 控制反转 依赖注入

    2. **Java注解配置**:使用如`@Component`、`@Service`、`@Repository`和`@Controller`等注解来标记组件,以及`@Autowired`、`@Qualifier`等注解进行依赖注入。 3. **Java配置类**:从Spring 3.0开始引入,使用`@...

    Spring的依赖注入,与前置通知的实例

    依赖注入的核心思想是将一个对象依赖的其他对象通过构造函数、setter方法或者接口回调等方式传入,而不是由该对象自己创建或查找依赖的对象。这样,对象的职责更加明确,可以专注于自己的业务逻辑,而不是管理依赖。...

    依赖注入demo

    总的来说,依赖注入通过注解和反射的结合,使得对象的依赖关系不再硬编码,而是由外部容器动态管理,从而提高了代码的灵活性和可测试性。在大型项目中,这样的设计模式对于代码的维护和扩展具有重大意义。

    spring依赖注入的实现原理

    依赖注入允许开发者在不修改代码的情况下,通过配置来改变对象间的依赖关系。它将对象的创建和对象之间依赖关系的管理交给了框架,使得系统更加灵活、易于测试和扩展。 ### 实现原理 1. **Bean工厂(Bean Factory)...

    Spring 核心机制(依赖注入)

    依赖注入是一种设计模式,它允许在运行时将对象的依赖关系动态地传递给对象,而不是在代码中硬编码这些依赖。这一模式的核心思想在于将组件之间的耦合最小化,使组件更易于测试、维护和重用。依赖注入主要关注于两个...

    Python-siringa基于Python注释语法的极简依赖注入库

    **Python-siringa依赖注入库详解** ...它的轻量级设计和对Python注解的良好支持,使得在Python项目中实现依赖注入变得更加容易。通过合理使用`siringa`,开发者可以提升代码的可读性、可维护性和可测试性。

    面向对象编程依赖注入详解

    Guice利用运行时注解和反射进行依赖注入,但可能对性能敏感的环境(如Android)不友好。Dagger是专门为Android设计的依赖注入库,它在编译时生成辅助类,提高了性能。然而,使用这些框架需要团队成员共同遵循特定的...

Global site tag (gtag.js) - Google Analytics