我们使用Spring
一般式在xml配置文件中进行注入.但是这种方式使得配置过于臃肿。试想一个应用中,有上千个对象,而每个对象又需要注入很多其它对象,那么我们的配置文件就显得非常的臃肿了。
Spring2.0 以后,我们可以使用annotation来为Spring的配置文件进行“减肥”
我使用的是Spring2.5.
第一:首先准备需要的jar包:SPRING_FRAMEWORK_HOME
为
spring
发行包所在的目录
A)
SPRING_FRAMEWORK_HOME/dist/spring.jar
B)
SPRING_FRAMEWORK_HOME/lib/
jakarta-commons/
commons-logging.jar
C)
SPRING_FRAMEWORK_HOME/lib/log4j
/
log4j-
1.2.15.jar(为了在项目中使用log4j输出日志信息)
D)
SPRING_FRAMEWORK_HOME/lib/j2ee/common-annotations.jar
第二:引入Spring配置的命名空间以及命名空间的schema文件的配置.这些配置可以到参考手册中找到。参考手册在SPRING_FRAMEWORK_HOME/
docs/reference中。有html版本和pdf版本。找到【3.2.1.1. Configuration
metadata】
拷贝配置即可
<?
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
>
在java代码中使用@Autowired或者@Resource注解方式进行装配。但我们要在xml配置中引入以下信息:
A)
context
命名空间以及这个命名空间的
schema
文件
B)
<context:annotation-config
/>
让
Spring
启用对
annotation
的支持。它其实是注册
了多个对
annotation
进行解析处理的处理器
:
AutowiredAnnotionBeanPostProcessor
CommonAnnotationBeanPostProcessor
PersistenceAnnotionBeanPostProcessor
RequiredAnnotationBeanPostProcessor.
(
注意
:annotation
本身是不能干活的,要想让
annotation
干活,必须要有处理器来解析
annotion)
第三:在java代码中使用@Resource进行注入
public class UserService
{
@Resource(name="userDao")
private
UserDAO userDao;
public UserDAO getUserDao()
{
return userDao;
}
public void setUserDao(UserDAO userDao) {
this.userDao = userDao;
}
public String[] getAllUser(){
return
userDao.findUsers();
}
}
第四:配置文件中的配置:
可以看到,我们没有在配置文件中为userService注入userDao,因为在
UserService类中使用annotation的方式注入
分享到:
相关推荐
在`IOC_Project`这个压缩包文件中,很可能是包含了一个示例项目,用于演示如何使用Spring的IOC Annotation注入。通过查看和运行这个项目,你可以更深入地了解这些概念并实践它们。项目的结构可能包括了源代码文件(`...
花了些时间做了一个实验,彻底弄懂了spring Annotation注入的方式。凡带有@Component,@Controller,@Service,@Repository 标志的等于告诉Spring这类将自动产生对象,而@Resource则等于XML配置中的ref,告诉spring此处...
在Spring框架中,注解(Annotation)的使用极大地简化了传统XML配置的复杂性,使得开发者可以更加专注于业务逻辑的实现。本篇文章将深入探讨如何通过注解将配置资源注入到Bean中,以此来理解Spring的注解驱动开发。 ...
在Spring中,我们可以使用`@Configuration`和`@Bean`注解来替代XML配置文件。`@Configuration`注解表明当前类是一个配置类,可以创建bean。`@Bean`注解则标记在方法上,表示该方法会返回一个bean实例。例如,创建...
// 或者在方法中使用 @Autowired public void setMovieFinder(@Qualifier("mainCatalog") MovieFinder movieFinder) { this.movieFinder = movieFinder; } ``` 上述代码展示了如何使用`@Autowired`与`@...
Spring框架是Java开发中不可或缺的一部分,它通过提供丰富的注解简化了依赖注入、配置管理和AOP(面向切面编程)等任务。本文将深入探讨Spring注解及其在实际开发中的应用。 1. **依赖注入(Dependency Injection, ...
本文旨在深入探讨Spring框架中基于注解的依赖注入机制,特别是`@Repository`、`@Service`、`@Controller`和`@Component`等核心注解的使用方法,以及如何利用`<context:component-scan>`自动扫描功能,实现类级别的...
### 详解Spring 3.0基于Annotation的依赖注入实现 #### 概述 Spring框架作为一个广泛使用的Java开发框架,提供了强大的依赖注入(Dependency Injection, DI)能力,帮助开发者轻松管理和组织复杂的Java应用。随着...
1. **依赖注入(Dependency Injection, DI)**:Spring Annotation中最常用的注解之一是`@Autowired`,它实现了自动装配bean。当在类的字段或构造器上使用`@Autowired`时,Spring会自动寻找类型匹配的bean并注入。...
在Spring框架中,注解(Annotation)自动匹配注入IoC(Inversion of Control,控制反转)是一种关键特性,它极大地简化了Java应用的配置管理。本文将深入探讨这一主题,帮助开发者更好地理解和利用这一功能。 首先...
在深入探讨Spring框架中基于注解(Annotation)的依赖注入(Dependency Injection,简称DI)实现之前,我们首先需要理解几个核心概念:Spring框架、依赖注入、以及注解本身。 ### Spring框架简介 Spring框架是一个...
在Spring框架中,Annotation配置是一种简洁且强大的方式来管理Bean的定义和依赖注入,它消除了传统的XML配置文件,使得代码更加简洁、易读。在Spring 3.0及以上版本中,Annotation配置得到了广泛的应用。 首先,...
这篇文档将深入探讨Spring注解的使用,包括它们如何工作以及如何在实际项目中应用。 首先,让我们了解Spring的核心注解。@Component 是基础注解,用于标记一个类为Spring管理的Bean。@Service 和 @Repository 是 @...
在使用 Spring 框架之前,我们通常使用 setter 方法来注入属性,例如: Java 代码 ```java public class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao ...
本篇笔记主要关注Spring中的注解(Annotation)和@Component,这两大概念是Spring框架的重要组成部分,也是理解SpringIoC(控制反转)和AOP(面向切面编程)的基础。 首先,注解(Annotation)是Java提供的一种元...
在Spring框架中,注解(Annotation)的使用极大地简化了依赖注入(Dependency Injection,简称DI)的过程,使得代码更加简洁且易于维护。本篇将详细探讨"3Spring使用annotation方式autowire"这一主题,包括注解驱动...