Spring ioc 依赖注入注解篇
下面是配置文件,配置了spring的扫描路径,不配置这个注解不起作用。
class="java" name="code">
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();
}
}
成功咯,简单吧。
- ExpectSpring.zip (35.3 KB)
- 下载次数: 0