spring&springboot中常见常用注解(Controller、Service、Repository、Component、Autowired)

诸葛嘉熙
2023-12-01

1、@Controller注解

用于标记该类为控制器类,提供controller服务(mvc中的c--controller)

eg:

@Controller

public class xxxController{

    @RequestMapping

    public void xxxRequest(HttpServletRequest request){}

}

 

2、@Service注解

用于标记该类为逻辑处理类,提供controller和dao之间的数据及业务逻辑的处理(controller-->service-->dao)

eg:

@Service

public class xxxService{

    @Autowired  xxxMapper mapper

    public List<T> getList(){

    }

}

 

3、@repository

是用来注解接口,为dao层的接口的注解

@repository

public interface xxxMapper{

     int deleteKey(){

    }

}

4、@Component

泛指各种组件,就是说当我们的类不属于各种归类的时候,使用@Component来标注这个类

@Component

public class CommonUtils{

    @PostConstrut

    public static void init(){

    }

}

总结:Controller、Service、Repository、Component这四个注解本质没有什么区别,主要是为了跟mvc结构去一一对应,m即repository注解对应的数据持久化底层,v即Service注解对应的业务处理逻辑层,c即controller对应的业务请求处理层,当其他类不属于这三个层次之后,可以使用component注解;他们都会把这些类纳入进spring容器中进行管理

 

5、@Autowired

它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法

eg:

@Service
public class xxxService {
     @Autowired
     private xxxRepository xxxRepository;
     
     public void save(){
         
     }
 }

当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean

 

 类似资料: