之前讲了xml中的autowire,是在被注入的bean上写autowire=“byName”当然还可以byType,default等等。
当然autowire这句话可以放到annotation中,这样的好处是
1、xml中的bean特别的整洁,每一行写一个bean,没有bean之间相互注入的关系,没有autowire的补丁。
2、由于整洁,可以只让程序员只关注bean,而把关系放到annotation中,这样更有条理。bean负责生成类的实例,注入由annotation负责
需要用到上一个例子
使用xml的autowire
现在修改springbean.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">
<!-- 新增xml的命名空间,接下来会用到context标签 -->
<!-- context对应的链接 -->
<!-- context对应的xsd -->
<context:annotation-config></context:annotation-config><!-- 表示使用annotation进行配置 -->
<bean id = "dao" class="com.spring.dao.UserDao"></bean>
<bean id="userService" class ="com.spring.service.UserService">
</bean>
</beans>
新增命名空间的配置。
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
新增了<context:annotation-config></context:annotation-config>标签,表示使用注释的方式进行配置。
同时删除掉xml文件中userService bean的autowire的配置。
在UserService类setDao方法上面增加@Autowired
package com.spring.service;
import org.springframework.beans.factory.annotation.Autowired;
import com.spring.dao.UserDao;
public class UserService {
private UserDao dao;
public UserDao getDao() {
return dao;
}
@Autowired
public void setDao(UserDao dao) {
this.dao = dao;
}
public void add()
{
dao.add();
}
}
测试一下,还是不行,因为使用annotation需要导入一个jar包
现在导入common-annotations.jar
导入后入下图。
再测试一下,就ok了
从现在起都提供源代码以供参考。请自行下载源码吧
- 大小: 13.3 KB
分享到:
相关推荐
网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...
本项目提供了使用Spring实现自动装配的实例,初学者可以通过分析代码,实践运行,观察不同装配方式的效果,加深对Spring DI的理解。通过这种方式,不仅可以提升编程技能,还能提高解决问题的能力,为未来更复杂的...
例如,我们可以在bean定义中使用`<autowire>`标签来指定自动装配的方式,如`byType`或`byName`。但这种方式相对繁琐,需要手动编写大量的XML配置。 随着Spring的发展,@Autowired注解应运而生,这是Annotation版本...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
- **基于注解(Annotation)方式配置DI容器**:介绍了如何使用注解来配置容器,替代传统的XML配置。 - **Spring表达式语言(SpEL)支持**: - **核心接口及类**:介绍SpEL的核心组件。 - **基于API方式使用**:...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
- **开始使用Annotation配置Spring**: 从Spring 2.5开始,提供了基于注解的配置方式。 - **@Autowired、@Qualifier**: - **@Autowired**: 自动装配依赖对象。 - **@Qualifier**: 解决多个相同类型的Bean导致的歧义...
10. **Spring_1500_AOP_Annotation**:这是关于Spring的面向切面编程,特别是使用注解进行AOP配置。Spring AOP允许我们在不修改业务代码的情况下添加横切关注点,如日志、事务管理等。 以上就是对Spring学习工程1中...
<bean id="WebSocketConfig" class="org.springframework.web.socket.config.annotation.WebSocketConfigurer" autowire="byType"> <bean id="serverEndpointExporter" class="org.springframework.web.socket....
Spring3 提供了一种更为简洁的方式来配置声明式事务,这使得在处理事务管理时,开发者可以更专注于业务逻辑。声明式事务管理是基于面向切面编程(AOP)的一种实现,它允许开发者通过在方法上添加注解来控制事务的...
Spring 2.0引入了简化XML配置的特性,例如使用`<beans>`标签的`default-autowire`属性,可以全局设置自动装配策略,减少重复的配置。 - **可扩展的XML编写** Spring 2.0增强了XML配置的扩展性,允许用户自定义...
然而,随着框架的发展,为了简化配置,Spring引入了最小化XML配置的概念,以及注解装配的方式,使得配置更加简洁和高效。本文将深入探讨如何实现Spring的最小化XML配置。 一、自动装配 1. 四种类型的自动装配 - ...
- 使用Spring的Transaction管理器来管理Hibernate事务。 - 通过OpenSessionInViewFilter保持会话持续时间,确保事务的一致性。 #### 七、Struts2+Spring+Hibernate整合 **整合要点:** - Struts2作为Web层框架。 -...
`autowire`属性则用来设置自动装配的方式,如`byType`、`byName`等。 **集合类型的注入**: Spring还支持对集合类型的注入,如`<set/>`、`<list/>`、`<map/>`和`<props/>`。这些标签可以方便地注入对象的集合属性,...
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util...