`
garrincha
  • 浏览: 13490 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

3Spring使用annotation方式autowire

阅读更多
之前讲了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完整实例

    网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...

    Spring实现自动装配

    本项目提供了使用Spring实现自动装配的实例,初学者可以通过分析代码,实践运行,观察不同装配方式的效果,加深对Spring DI的理解。通过这种方式,不仅可以提升编程技能,还能提高解决问题的能力,为未来更复杂的...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    例如,我们可以在bean定义中使用`&lt;autowire&gt;`标签来指定自动装配的方式,如`byType`或`byName`。但这种方式相对繁琐,需要手动编写大量的XML配置。 随着Spring的发展,@Autowired注解应运而生,这是Annotation版本...

    Spring中文帮助文档

    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...

    Spring3_权威开发指南

    - **基于注解(Annotation)方式配置DI容器**:介绍了如何使用注解来配置容器,替代传统的XML配置。 - **Spring表达式语言(SpEL)支持**: - **核心接口及类**:介绍SpEL的核心组件。 - **基于API方式使用**:...

    Spring 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...

    Spring学习工程1

    10. **Spring_1500_AOP_Annotation**:这是关于Spring的面向切面编程,特别是使用注解进行AOP配置。Spring AOP允许我们在不修改业务代码的情况下添加横切关注点,如日志、事务管理等。 以上就是对Spring学习工程1中...

    springwebsocket 中文注释案例

    &lt;bean id="WebSocketConfig" class="org.springframework.web.socket.config.annotation.WebSocketConfigurer" autowire="byType"&gt; &lt;bean id="serverEndpointExporter" class="org.springframework.web.socket....

    Spring3配置声明式事务[借鉴].pdf

    Spring3 提供了一种更为简洁的方式来配置声明式事务,这使得在处理事务管理时,开发者可以更专注于业务逻辑。声明式事务管理是基于面向切面编程(AOP)的一种实现,它允许开发者通过在方法上添加注解来控制事务的...

    Spring教材

    Spring 2.0引入了简化XML配置的特性,例如使用`&lt;beans&gt;`标签的`default-autowire`属性,可以全局设置自动装配策略,减少重复的配置。 - **可扩展的XML编写** Spring 2.0增强了XML配置的扩展性,允许用户自定义...

    如何完成spring的最小化XML配置

    然而,随着框架的发展,为了简化配置,Spring引入了最小化XML配置的概念,以及注解装配的方式,使得配置更加简洁和高效。本文将深入探讨如何实现Spring的最小化XML配置。 一、自动装配 1. 四种类型的自动装配 - ...

    马士兵spring学习笔记

    - 使用Spring的Transaction管理器来管理Hibernate事务。 - 通过OpenSessionInViewFilter保持会话持续时间,确保事务的一致性。 #### 七、Struts2+Spring+Hibernate整合 **整合要点:** - Struts2作为Web层框架。 -...

    Spring3.2小结

    `autowire`属性则用来设置自动装配的方式,如`byType`、`byName`等。 **集合类型的注入**: Spring还支持对集合类型的注入,如`&lt;set/&gt;`、`&lt;list/&gt;`、`&lt;map/&gt;`和`&lt;props/&gt;`。这些标签可以方便地注入对象的集合属性,...

    spring mvc框架下的aop例子

    import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util...

Global site tag (gtag.js) - Google Analytics