Spring 简单案例(依赖注入)_01

     Spring ioc 依赖注入注解篇

     下面是配置文件,配置了spring的扫描路径,不配置这个注解不起作用。
package com.expect.oa.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.expect.oa.*")
//@ComponentScan(basePackages={"com.expect.oa.DI.*","com.expect.oa.DI2.*"})
//多个包可以这样写,这相当于在XML里配置了自动扫描
public class SpringConfig {

}

     这是一个接口:
package com.expect.oa.DI.interfaces;

public interface InterA {

	void action1 ();
	
}


     下面声明一个简单的类,继承了上面的借口:
package com.expect.oa.DI;

import org.springframework.stereotype.Component;

import com.expect.oa.DI.interfaces.InterA;

@Component("interAImpl")
//@Named("interAImpl")同样的效果
public class CompA implements InterA{

	@Override
	public void action1() {
		// TODO Auto-generated method stub
		System.out.println("spring DI");
	}

}

     下面是测试代码:
package com.expect.oa.test;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.expect.oa.DI.interfaces.InterA;
import com.expect.oa.config.SpringConfig;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfig.class})
public class TestSpringDI {

	//个人建议给每个组件都起名。
	@Resource(name="interAImpl")
	//@Autowired 同样的效果
	InterA aService;
	
	//这里是测试依赖注入
	@Test
	public void testDI() {
		aService.action1();
	}

}

成功咯,简单吧。

猜你喜欢

转载自aa80303857.iteye.com/blog/2296863