spring boot 使用依赖注入的方式很简单,只需要给添加相应的注解即可
@Service 用于标注业务层组件
@Controller 用于标注控制层组件
@Repository 用于标注数据访问组件,即 DAO 组件
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注.
然后在使用的地方使用 @Autowired 即可
创建 MyComponent,使用 @Component
创建 MyController,使用 @Controller
import org.springframework.stereotype.Component;
@Component//泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注.
public class MyComponent
{
public void hi(String name)
{
System.out.println("hi " + name + ",I am MyComponent");
}
}
创建 MyRepository,使用 @Repository
import org.springframework.stereotype.Controller;
@Controller//用于标注控制层组件
public class MyController
{
public void hi(String name)
{
System.out.println("hi " + name + ",I am MyController");
}
}
创建 MyService,MyServiceImpl,使用 @Service
@Repository//用于标注数据访问组件,即DAO组件
public class MyRepository
{
public void hi(String name)
{
System.out.println("hi " + name + ",I am MyRepository");
}
}
单元测试
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();
}
}
显示以上 4 句话证明成功注入
hi lierabbit,
I am MyController hi lierabbit,
I am MyRepository hi lierabbit,
I am MyComponent i am MyServiceImpl
来源: https://www.cnblogs.com/lierabbit/p/8299030.html