SpringIOC注解的HelloWorld


Spring容器对于Bean的创建和对象属性的依赖注入提供了注解的支持,让我们在开发中能够更加便捷的实现对象的创建和对象属性的依赖注入。

一、对于Bean的创建spring容器提供了以下四个注解的支持:

1、@Component     普通的对象创建

2、@Repository   dao层实现类的注解

3、@Service   service层实现类的注解

4、@Controller  controller层实现类的注解

以上四个注解在普通使用中是等效的,但在web项目中为了区分三层架构中不同层之间Bean的创建,为了避免注解使用的混乱,使用后三个注解进行区分。


二,对于Bean属性的依赖注入分为两类,一类是对于属性是String类型或者基本数据类型Spring容器提供了@Value这个注解,另一类是对于属性是对象的提供了@Autowired@Resource这两个注解。

其中,@Autowired这个注解是Spring框架自带的注解,而@Resource(javax.annotation.Resource)这个注解是javax扩展包中注解规范的一种,而Spring对这一注解提供了支持。

 

接下来我们先看看Spring的注解的HelloWorld如何开发?

一、多导入一个spring-aop的支持包

因为Spring的注解开发依赖了spring-aop的包,所以需要在spring-ioc的XML开发包的基础多导入一个:

否则,如果不导入该包,会报一下异常:

二、编写Bean类

CustomerDao接口:

package com.yiidian.dao;
/**
 * 
 * @author http://www.yiidian.com
 *
 */
public interface CustomerDao {

	public void save();
}

CustomerDaoImpl:

package com.yiidian.dao.impl;

import org.springframework.stereotype.Component;

import com.yiidian.dao.CustomerDao;
/**
 * @author http://www.yiidian.com
 *
 */
@Component(value="customerDao")  //如果不加value,名称默认为类名:customerDaoImpl
public class CustomerDaoImpl implements CustomerDao {

	@Override
	public void save() {
		System.out.println("测试SpringIOC的注解用法");
	}

}

三、配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

	<!-- 开启SpringIOC注解扫描 -->
	<context:component-scan base-package="com.yiidian.dao"></context:component-scan>
	
</beans>

四、编写测试类

package com.yiidian.test;

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

import com.yiidian.dao.CustomerDao;
/**
 * @author http://www.yiidian.com
 *
 */
public class Demo1 {
	
	@Test
	public void test1(){
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		CustomerDao customerDao = (CustomerDao)ac.getBean("customerDao"); 
		customerDao.save();
	}
}

五、运行结果

 

源码下载:http://pan.baidu.com/s/1eSaoRrs