原文地址:https://lierabbit.cn/articles/6
spring boot使用依赖注入的方式很简单,只需要给添加相应的注解即可
@Service用于标注业务层组件
@Controller用于标注控制层组件
@Repository用于标注数据访问组件,即DAO组件
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
然后在使用的地方使用@Autowired即可
创建MyComponent,使用@Component import org.springframework.stereotype.Component; @Component//泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 public class MyComponent { public void hi(String name) { System.out.println("hi " + name + ",I am MyComponent"); } }创建MyController,使用@Controller import org.springframework.stereotype.Controller; @Controller//用于标注控制层组件 public class MyController { public void hi(String name) { System.out.println("hi " + name + ",I am MyController"); } } 创建MyRepository,使用@Repository @Repository//用于标注数据访问组件,即DAO组件 public class MyRepository { public void hi(String name) { System.out.println("hi " + name + ",I am MyRepository"); } } 创建MyService,MyServiceImpl,使用@Service public interface MyService { void doSomeThing(); } import org.springframework.stereotype.Service; @Service//用于标注业务层组件 public class MyServiceImpl implements MyService { @Override public void doSomeThing() { System.out.println("i am MyServiceImpl"); } } 单元测试
在src/test/java/你的包名/你的项目名ApplicationTests编写对应的单元测试来验证是否可以成功注入
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class DiApplicationTests { @Autowired//自动注入 private MyController myController; @Autowired//自动注入 private MyRepository myRepository; @Autowired//自动注入 private MyComponent myComponent; @Autowired//自动注入实现了该接口的bean private MyService myService; @Test public void contextLoads() { myController.hi("lierabbit"); myRepository.hi("lierabbit"); myComponent.hi("lierabbit"); myService.doSomeThing(); } }运行测试用例
hi lierabbit,I am MyController
hi lierabbit,I am MyRepository
hi lierabbit,I am MyComponent
i am MyServiceImpl
显示以上4句话证明成功注入
原文地址:https://lierabbit.cn/articles/6