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

Spring依赖注入的简单示例(基于注解配置)

2013-10-10 12:43 761 查看
1. Spring提供如下几个Annotation来标注Spring Bean。

@Component:标注一个普通的Spring Bean

@Controller:标注一个控制器组件类

@Service:标注一个业务逻辑组件类

@Repository:标注一个DAO组件类

2. 实体:

package com.huey.entity;

public class Entity {

public Entity() {
}
}


3. DAO接口:

package com.huey.dao;

import com.huey.entity.Entity;

/**
* DAO层接口
* @author Huey2672
*
*/
public interface EntityDao {

/**
* 添加实体
* @param entity
*/
public void addEntity(Entity entity);

/**
* 删除实体
* @param entity
*/
public void deleteEntity(Entity entity);

/**
* 更新实体
* @param entity
*/
public void updateEntity(Entity entity);

}


4. DAO实现:

package com.huey.dao.impl;

import org.springframework.stereotype.Repository;

import com.huey.dao.EntityDao;
import com.huey.entity.Entity;

/**
* DAO层实现
* @author Huey2672
*
*/
@Repository("entityDao")
public class EntityDaoImpl implements EntityDao {

/**
* 添加实体
* @param entity
*/
public void addEntity(Entity entity) {
System.out.println("Add Entity");
}

/**
* 删除实体
* @param entity
*/
public void deleteEntity(Entity entity) {
System.out.println("Delete Entity");
}

/**
* 更新实体
* @param entity
*/
public void updateEntity(Entity entity) {
System.out.println("Upadte Entity");
}

}


5. Service接口:

package com.huey.service;

import com.huey.entity.Entity;

/**
* Service层接口
* @author Huey2672
*
*/
public interface EntityServ {

/**
* 添加实体
* @param entity
*/
public void addEntity(Entity entity);

/**
* 删除实体
* @param entity
*/
public void deleteEntity(Entity entity);

/**
* 更新实体
* @param entity
*/
public void updateEntity(Entity entity);

}


6. Service实现:

package com.huey.service.impl;

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

import com.huey.dao.EntityDao;
import com.huey.entity.Entity;
import com.huey.service.EntityServ;

/**
* Service层实现
* @author Huey2672
*
*/
@Service("entityServ")
public class EntityServImpl implements EntityServ {

// 自动装配
@Autowired
private EntityDao entityDao;

public EntityDao getEntityDao() {
return entityDao;
}

public void setEntityDao(EntityDao entityDao) {
this.entityDao = entityDao;
}

/**
* 添加实体
* @param entity
*/
public void addEntity(Entity entity) {
entityDao.addEntity(entity);
}

/**
* 删除实体
* @param entity
*/
public void deleteEntity(Entity entity) {
entityDao.deleteEntity(entity);
}

/**
*更新实体
* @param entity
*/
public void updateEntity(Entity entity) {
entityDao.updateEntity(entity);
}

}


7. Spring配置文件applicationContext.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-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 
<!-- 自动扫描指定包及其子包下的所有Bean类 -->
<context:component-scan base-package="com.huey"/>

</beans>


8. 测试用例:

package com.huey.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.huey.service.EntityServ;
import com.huey.service.impl.EntityServImpl;

/**
* 测试用例
* @author Huey2672
*
*/
public class SpringTest {

@Test
public void testIoc() throws Exception {

// 创建Spring容器
ApplicationContext appCtx =
new ClassPathXmlApplicationContext("applicationContext.xml");
// 通过容器获得EntityServ的实例
EntityServ entityServ = appCtx.getBean("entityServ", EntityServImpl.class);

entityServ.addEntity(null);
entityServ.deleteEntity(null);
entityServ.addEntity(null);
}

}


9. 结果输出:

Add Entity
Delete Entity
Add Entity
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: