Spring的核心概念IoC

Spring的核心概念-IoC

“控制反转”

控制反转(Inversion of Control,IoC),也称为依赖注入(Dependency Injection,DI)

Hello,Spring!

1.编写一个HelloSpring类

/**
 * 第一个Spring,输出"Hello,Spring!"。
 * 
 * 
 */
public class HelloSpring {
	// 定义who属性,该属性的值将通过Spring框架进行设置
	private String who = null;

	/**
	 * 定义打印方法,输出一句完整的问候。
	 */
	public void print() {
		System.out.println("Hello," + this.getWho() + "!");
	}

	/**
	 * 获得 who。
	 * 
	 * @return who
	 */
	public String getWho() {
		return who;
	}

	/**
	 * 设置 who。
	 * 
	 * @param who
	 */
	public void setWho(String who) {
		this.who = who;
	}
}

2.编写Spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	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-3.2.xsd">
	<!-- 通过bean元素声明需要Spring创建的实例。该实例的类型通过class
	属性指定,并通过id属性为该实例指定一个名称,以便在程序中使用 -->
	<bean id="helloSpring" class="cn.springdemo.HelloSpring">
		<!-- property元素用来为实例的属性赋值,此处实际是调用setWho()方法
		实现赋值操作 -->
		<property name="who">
			<!-- 此处将字符串"Spring"赋值给who属性 -->
			<value>Spring</value>
		</property>		
	</bean>
</beans>

3.添加测试方法

public class HelloSpringTest {
    @Test
    public void helloSpring() {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        HelloSpring helloSpring = (HelloSpring) context.getBean("helloSpring");        
        helloSpring.print();
    }
}

通过Hello,Spring!的例子Spring会自动接管配置文件中Bean的创建
和为属性赋值的工作。
相对于“控制反转”,“依赖注入”的说法也许更容易理解一些,即由容器负责把组建所“依赖”的具体对象“注入”给组件,从而避免组件之间以硬编码的方式耦合在一起。

IoC的注解

import org.springframework.stereotype.Component;
@Component("userDao")
public class UserDaoImpl implements UserDao{
	//方法
}

在Service的实现类中注解

@Service("userService")
public class UserServiceImpl implements UserService{
	@Autowired
	@Qualifier("userDao")
	//或者用
	@Resource(name="userDao")//Auto和Q都可省去
	private UserDao userDao;
	//方法
}

修改applicationContext配置文件

//在bean中加入代码
xmlns:context="http://www.springframework.org/schema/context"
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.2.xsd
//beans中的代码
<!-- 扫描 -->
<context:component-scan base-package="service,dao"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值