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方法上。
一、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方法上。
相关文章推荐
- java--IO
- Ubuntu Install The Eclipse
- 分析Java类加载全过程
- 简单的JAVA IO
- 《深入理解Java虚拟机》笔记
- java类库的阅读笔记_jdk1.7.0_40_java.util.concurrent.locks.LockSupport
- Java Web
- 对java中String的理解
- 深入Java虚拟机:JVM中的Stack和Heap
- 由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持
- 在eclipse下编写简单mapreduce程序
- java零碎知识点整理
- Java 基本数据类型与byte数组互转
- Java 获取指定日期的实现方法总结
- 几个主流的Java连接池
- java与.net比较学习系列(4) 运算符和表达式
- 树和二叉树在java中
- Java 类加载 初始化过程
- Java新建多级目录
- YourKit Java Profiler 2013发布