spring2中基于注释的配置方式浅析
<script type="text/javascript"></script>
注:annotation-based configuration是一把双刃剑,与xml-based configuration相比,有利有弊,其中利弊不在本文讨论的范围内,不再多说,仅提醒各位根据自身的需要谨慎选择。
使用Annotaion似乎成了时尚和趋势,spring2.5提供了一些Annotation,使开发者可以简化我们的配置文件。本文简单阐述一下spring2.5中的Annotation是如何使用的,不做深层次的研究。
一、配置文件可以简化到什么程度?
使用annotation以前,我们要在xml配置文件中配置每一个我们用spring管理的bean,有十个要写十个,有一百个要写一百个......
使用annotation之后,及至情况下,我们可以一个都bean都不写,那么我们的配置文件就要写成下面的样子:
<?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" default-autowire="byName" default-lazy-init="true">
<context:annotation-config />
<context:component-scan base-package="org.example">
<context:include-filter type="regex" expression=".*Stub.*Repository"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
</beans>
看看,上面没有一个<bean>标签吧!下面简单解释一下下面的配置:
1) <beans>标签里面,以前我们用DTD,现在我们用的是XMLSchema-style,具体含义本文不讲了(本文是“浅析”教程嘛)
2)
<context:annotation-config />表示,我们要使用Annotation-based的bean管理方式。3)
<context:component-scan base-package="org.example">表示org.example包下的一些类使用Annotation-based的bean管理方式,换句话说就是在这个包下的Annotation才会起作用,其他包下的没用。
4) <context:include-filter和<context:exclude-filter就是用正则表达式来include和exclude指定包(就是org.example)想的一下bean。
二、怎么什么声明一个spring管理的bean?怎么注入bean?
声明:在bean上加注释@Component,例:
package org.example;
@Component("sampleBean")
public class SampleBean{
//......
}
注入:在field,seter等上加注释@Autowired,例:
package org.example;
public class SampleBeanInjection{
private SampleBean sampleBean;
@Autowired
public setSampleBean(SampleBean sampleBean){
//......
}
//......
}
如上的例子不是很恰当,明眼人见谅。
三、有哪些Annotation可用?
在org.springframework.stereotype包下,有用于声明bean的Annotation:
Component
Controller
Repository
Service
在org.springframework.beans.factory.annotation包下,有用于注入bean的Annotation:
Autowired
Qualifier
Required
在JSR-250的规范中(即j2ee的javax.annotation包下),有@Resource用来注入bean,其功能与@Autowired相似。
分享到:
相关推荐
在Spring 2.5中,Spring MVC引入了更多的注解驱动特性,简化了配置。 **数据访问集成** Spring 2.5增强了对多种数据访问技术的支持,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和MyBatis等。它...
1. **依赖注入(DI)增强**:在Spring 2.5中,依赖注入进一步加强,支持了基于注解的配置。开发者可以使用`@Autowired`、`@Qualifier`和`@Resource`等注解来简化装配过程,无需编写XML配置文件。 2. **注解驱动的开发...
在Spring 2.5中,容器支持更多的XML配置选项和基于注解的配置。 4. **注解支持**:在Spring 2.5中,注解开始广泛应用于配置,如@Service、@Repository、@Controller等,这减少了对XML配置的依赖,使代码更简洁。 5...
在实际应用中,我们可以使用 Spring 2.5 的基于注释的配置来简化配置过程,提高开发效率。但是,我们也需要注意,这种配置方式需要 Java 5 或更高版本的支持,否则可能会出现兼容性问题。 Spring 2.5 的基于注释的...
此外,引入了基于Java配置的功能,允许开发者通过编写Java类来定义和管理Bean,这种方式更加面向对象,可读性和可维护性更强。 其次,Spring 2.5对AOP的支持也有所加强,新增了对JSR-250注解(如@PostConstruct和@...
Spring 2.5的注释驱动和基于注释的MVC极大地简化了Spring应用的开发,减少了XML配置,提高了代码的可读性和可维护性。通过合理利用这些注解,开发者可以构建出更加高效、灵活且易于理解的Spring MVC应用。在实际项目...
这个"Spring2.5-中文参考手册chm.zip"文件包含了关于Spring 2.5版本的详细中文指南,对于学习和理解Spring框架具有很高的价值。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI)、面向切面编程...
这个"spring2.5+hibernate基于xml配置的实例"是一个经典的组合,展示了如何在旧版本的Spring(2.5)和Hibernate中通过XML配置文件来整合和管理应用的组件。 首先,Spring 2.5是Spring框架的一个早期版本,它引入了...
3. **XML配置增强**:在Spring 2.5中,XML配置文件得到了改进,引入了自动装配(autowiring)和注解支持,使得配置更加简洁。例如,`<context:component-scan>`标签可以扫描指定包下的所有注解组件。 4. **注解驱动...
1. **依赖注入增强**:Spring 2.5进一步完善了DI机制,支持注解驱动的配置,使得开发者可以在类和方法级别使用`@Autowired`、`@Qualifier`等注解进行依赖注入,减少了XML配置文件的使用。 2. **注解支持**:Spring ...
让我们深入探讨一下Spring 2.5中的核心知识点。 1. **依赖注入(Dependency Injection, DI)**: Spring的核心特性之一就是依赖注入,它允许对象之间的依赖关系在运行时由容器管理,而不是硬编码在类内部。在...
在Spring 2.5中,对Bean的元数据支持更丰富,包括属性、构造器、工厂方法等的注入方式,同时增强了对JSR-250注解的支持,如`@PostConstruct`和`@PreDestroy`。 4. **Web包**:Spring 2.5的Web模块提供了一个全面的...
- 在Spring 2.5中,对ORM(Object-Relational Mapping)框架的集成得到了增强,简化了数据库操作。 6. **Spring AOP增强** - 在2.5版本中,Spring AOP支持了更多的切点表达式语法,使得更灵活地定义何时应用通知...
在 Spring 2.5 中,Spring MVC 框架引入了注解驱动功能,使得开发者可以使用注解来配置 Controller,代替传统的基于 XML 的配置方式。这种方式使得 Controller 的开发变得更加灵活和方便。 使用 @Controller 注解 ...
Struts2.1、Spring2.5和Hibernate3.3是经典的Java企业级开发框架组合,它们各自在应用程序的不同层面提供了强大的支持。本篇将详细阐述这三个组件的整合过程,以及各自的核心特性。 首先,Struts2是一个基于MVC设计...
3. **AOP(Aspect-Oriented Programming,面向切面编程)**:在Spring 2.5中,AOP支持更加丰富,包括注解式切面定义,如`@Before`、`@After`、`@Around`等,以及基于注解的切入点表达式,让切面的定义更加直观。...
虽然Spring 2.5开始支持基于注解的配置,但XML配置仍然是一种常见且强大的方式。在AOP的上下文中,XML配置可以定义切面、通知(Advice)、切点(Pointcut)以及代理类型(Proxy Type)。以下是一些关键元素: 1. `...
在2.5版本中,支持XML和注解两种方式来定义Bean及其属性。 3. **AOP(Aspect-Oriented Programming,面向切面编程)**:Spring的AOP模块允许开发者定义切面,将横切关注点(如日志、事务管理)与业务逻辑分离。切面...