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