spring boot使用依赖注入的方式很简单,只需要给添加相应的注解即可
- @Service用于标注业务层组件
- @Controller用于标注控制层组件
- @Repository用于标注数据访问组件,即DAO组件
- @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
然后在使用的地方使用@Autowired即可
创建MyComponent,使用@Component
1import org.springframework.stereotype.Component; 2 3@Component//泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 4public class MyComponent 5{ 6 public void hi(String name) 7 { 8 System.out.println("hi " + name + ",I am MyComponent"); 9 } 10}
创建MyController,使用@Controller
1import org.springframework.stereotype.Controller; 2 3@Controller//用于标注控制层组件 4public class MyController 5{ 6 public void hi(String name) 7 { 8 System.out.println("hi " + name + ",I am MyController"); 9 } 10}
创建MyRepository,使用@Repository
1@Repository//用于标注数据访问组件,即DAO组件 2public class MyRepository 3{ 4 public void hi(String name) 5 { 6 System.out.println("hi " + name + ",I am MyRepository"); 7 } 8}
创建MyService,MyServiceImpl,使用@Service
1public interface MyService 2{ 3 void doSomeThing(); 4}
1import org.springframework.stereotype.Service; 2 3@Service//用于标注业务层组件 4public class MyServiceImpl implements MyService 5{ 6 7 @Override 8 public void doSomeThing() 9 { 10 System.out.println("i am MyServiceImpl"); 11 } 12}
单元测试
在src/test/java/你的包名/你的项目名ApplicationTests编写对应的单元测试来验证是否可以成功注入
1import org.junit.Test; 2import org.junit.runner.RunWith; 3import org.springframework.beans.factory.annotation.Autowired; 4import org.springframework.boot.test.context.SpringBootTest; 5import org.springframework.test.context.junit4.SpringRunner; 6 7@RunWith(SpringRunner.class) 8@SpringBootTest 9public class DiApplicationTests 10{ 11 @Autowired//自动注入 12 private MyController myController; 13 @Autowired//自动注入 14 private MyRepository myRepository; 15 @Autowired//自动注入 16 private MyComponent myComponent; 17 @Autowired//自动注入实现了该接口的bean 18 private MyService myService; 19 20 @Test 21 public void contextLoads() 22 { 23 myController.hi("lierabbit"); 24 myRepository.hi("lierabbit"); 25 myComponent.hi("lierabbit"); 26 myService.doSomeThing(); 27 } 28 29}
运行测试用例

hi lierabbit,I am MyController
hi lierabbit,I am MyRepository
hi lierabbit,I am MyComponent
i am MyServiceImpl
显示以上4句话证明成功注入
源码地址:https://github.com/LieRabbit/SpringBoot-DI
原文地址:https://lierabbit.cn/2018/01/15/SpringBoot%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A83-%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/