1、命名空间
使用Annotation的方式,需要在spring的配置文件中配置命名空间。命名空间中,隐式地注册了多个对注解进行解析处理的处理器。
a、引入context命名空间
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
b、打开注解功能
<context:annotation-config />
2、@Autowired与@Resource
@Autowired与@Resource在使用上是没有任何区别的。即可以放于属性声明之前,也可以放于属性的setter方法头上。
只是@Autowired注解是由Spring提供的,它是按类型进行装配。而@Resource是由JavaEE提供的,它是按属性的名字进行装配,找不到名字后再找类型按类型装配。
@Autowired是推荐使用的。
3、具体使用:
UserDao与UserDaoImpl:
-
publicinterfaceUserDao{
-
publicvoidsave();
-
}
-
publicclassUserDaoImplimplementsUserDao{
-
publicvoidsave(){
-
System.out.println("保存用户...");
-
}
-
}
-
UserService接口及其实现类UserServiceImpl:
-
publicinterfaceUserService{
-
publicvoidaddUser();
-
}
-
在UserServiceImpl中使用注解把UserDao对象注入进来使用。
public class UserServiceImpl implements UserService {
//1
@Autowired private UserDao userDao;
public UserServiceImpl(UserDao userDao, String username) {
this.userDao = userDao;
this.username = username;
}
public void addUser() {
System.out.println(username);
userDao.save();
}
}
在上面注释1的地方还可以替换成以下几种方式:
@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Resource private UserDao userDao;
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
配置文件:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<!-- 配置文件中,UserDaoImpl与UserServiceImpl是相互对立,没有任何关系的。-->
<bean id="userDao" class="cn.framelife.spring.dao.impl.UserDaoImpl"></bean>
<bean id="userService" class="cn.framelife.spring.service.impl.UserServiceImpl"></bean>
<beans>
4、注意:
1、使用注解功能,必须是JDK5.0及以上版本。
2、一般来说,基本数据类型的属性不使用Annotation的方式注入,Annotation只用于Bean的装配。而且,如果不是必须,基本数据类型的属性一般不使用注入的方式。
分享到:
相关推荐
Annotation注入是Spring IOC的一种实现方式,它利用Java注解替代XML配置来管理Bean的依赖关系,使得代码更加简洁、可读性更强。 在Spring框架中,我们主要关注以下几个关键的注解: 1. `@Component`:这是一个基础...
"IoC 依赖注入 技术总结" IoC 依赖注入技术是软件设计中的一种重要技术,旨在解决软件系统中的耦合问题。该技术的核心思想是将被调用构件实例化,并注入到调用构件之中,以实现软件系统的高内聚、低耦合。IoC 依赖...
#### 二、IoC容器概述 在传统的Java应用程序中,对象的创建和管理通常由程序员来完成。这种方式会导致代码之间存在高度耦合,难以维护。而Spring通过其IoC容器实现了对对象的创建、配置和管理过程的解耦,使得开发...
在Spring框架中,注解(Annotation)自动匹配注入IoC(Inversion of Control,控制反转)是一种关键特性,它极大地简化了Java应用的配置管理。本文将深入探讨这一主题,帮助开发者更好地理解和利用这一功能。 首先...
在没有IoC的情况下,对象通常会自己创建或查找依赖,而在IoC模式下,依赖关系由外部容器管理并注入到对象中。这样,对象不再负责管理自己的依赖,而是专注于执行其核心功能。 在ASP.NET MVC4中,Unity是一个流行的...
在Spring中,IOC的主要实现方式有两种:依赖注入(Dependency Injection,简称DI)和基于接口的配置。下面将对这两种方式进行详细阐述。 一、依赖注入(Dependency Injection) 1. **构造器注入**:通过构造函数来...
本压缩包中的"C# IOC 依赖注入源码"提供了IOCPerformanceTest项目,用于测试和比较不同IOC容器的性能。这通常对于大型企业级应用来说是非常重要的,因为正确的选择可以显著影响应用程序的启动速度和运行效率。 `...
Spring的核心特性之一就是它的Inversion of Control(IoC,控制反转)容器,也被称为Dependency Injection(DI,依赖注入)。这个概念是Spring框架使应用程序组件之间解耦的关键。让我们深入探讨一下Spring的IoC和...
然后,在我们的 `IOCContainer` 中,我们可以通过实例化 `MyClass` 并使用 `resolve` 方法注入依赖: ```php $container = new IOCContainer(); $container->register('Dependency', 'DependencyImplementation'); ...
在Nutz中使用Ioc-Annotation的入门教程 Nutz是一个轻量级的Java开发框架,它提供了强大的IoC(Inversion of Control)容器和AOP(Aspect-Oriented Programming)支持。本教程将引导您了解如何在Nutz中利用Ioc-...
本章主要介绍Spring框架中的控制反转(Inversion of Control,IoC)思想,以及依赖注入(Dependency Injection,DI)与依赖查找(Dependency Lookup,DL)两种实现IoC的方式。此外,还涉及了Spring程序开发的基本...
DI(Dependency Injection,依赖注入)是IOC的一种实现方式,通过配置或编程的方式,将对象之间的依赖关系在运行时动态注入,而不是由对象自己去查找和创建依赖。 在Spring IOC中,主要的注入方式有以下几种: 1. ...
标题中的"第二章 Spring4 IOC"表明我们即将探讨的是关于Spring框架第四版本中的控制反转(Inversion of Control,简称IOC)这一核心概念。IOC是Spring框架的基础,它使得应用程序的组件能够脱离具体的依赖关系,提高...
今天有空,写了基于C#使用Spring.Net的演示实例,希望能给有需要的人带来帮助,其中演示了配置下的IOC、AOP、属性注入、构造函数注入、通知过滤器、以及不使用配置直接代码硬编的AOP动态代码过程,另外还增加了...
SPRING IOC注入方式过程解析 SPRING IOC是一种轻量级的控制反转(Inversion of Control)容器框架,主要用于解耦合Java应用程序中的组件。其中,IOC(Inversion of Control)注入是SPRING IOC的核心机制之一。下面...
本项目通过引入Attribute特性,旨在简化Unity框架的IOC注入过程,使代码更加简洁易读。Attribute在.NET中是一种元数据,可以附加到程序元素(如类、方法、属性等)上,提供额外的信息,通常用于运行时反射和自定义...
Spring.Net IOC依赖注入原理流程解析 本文将详细介绍Spring.Net IOC依赖注入原理流程解析,通过示例代码介绍了非常详细,对大家的学习或者工作具有一定的参考学习价值。 一、什么是IOC? IOC(Inversion of ...
理解什么是IoC和DI。 理解构造注入 理解不同数据类型的注入方法 掌握p命名空间注入 Bean自动装配
### Ioc注入讲解 #### 1. 容器基础 ##### 1.1 容器初探 在IoC(Inverse of Control,控制反转)框架中,容器是核心概念之一,它负责对象的管理和创建。在传统的编程模式下,对象的创建通常由程序员通过`new`...