您的位置:首页 > 编程语言 > Java开发

spring 注入方式二:注解

2013-10-31 23:14 316 查看
需求描述:service层bean要注入dao层bean,并且不是基于xml文件的

一、java类

service:

package com.wenpu.inject.annotation;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Qualifier;

import org.springframework.stereotype.Component;

//设置bean的名字

@Component("serviceBean")

public class ServiceBean {

@Autowired//默认根据bean的类型注入

@Qualifier("daoBean")//添加了此注解,将根据bean的名字注入

private DaoBean daoBean;

public DaoBean getDaoBean() {

return daoBean;

}

public void setDaoBean(DaoBean daoBean) {

this.daoBean = daoBean;

}

public void add(){

daoBean.save();

}

}

dao:

package com.wenpu.inject.annotation;

import org.springframework.stereotype.Component;

//设置bean的名字

@Component("daoBean")

public class DaoBean {

public void save(){

System.out.println("dao save");

}

}

二、配置文件

<?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-3.2.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.2.xsd">

<!-- 扫描包,让注解方式配置的类进入spring的容器管理 -->

<context:component-scan base-package="com.wenpu.inject"></context:component-scan>

</beans>

三、测试类

package com.wenpu.inject.annotation;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

/**

* @param args

*/

public static void main(String[] args) {

ApplicationContext context=new ClassPathXmlApplicationContext("com/wenpu/inject/annotation/annotation-context.xml");

ServiceBean serviceBean=(ServiceBean)context.getBean("serviceBean");

serviceBean.add();

}

}

四、输出结果:

dao save

五、使用注解的好处是让bean的定义和实现统一,而非xml格式二者是分离的。

六、上面的service bean注入dao bean时,Autowired是放在了属性上,同样也可放在set方法上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: