关于Spring注解 @Service @Component @Controller @Repository 用法

@Component 相当于实例化类的对象,其他三个注解可以理解为@Component的子注解或细化。

在annotaion配置注解中用@Component来表示一个通用注释用于说明一个类是一个spring容器管理的类,此类将有spring扫描并加入容器参与ioc。即就是该类已经拉入到spring的管理中了。

通过在 classpath 中通过自动扫描方式把组建纳入 spring 容器管理。

要使用自动扫描机制我们需要打开一下配置信息:

Bean.xml代码   

  1. <?xml version= "1.0"  encoding= "UTF-8" ?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-2.5 .xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-2.5 .xsd">
  9. <!--<context:annotation-config />-->
  10. <context:component-scan base-package="com.zchen" />
  11. <!-- 包含annotation-config。spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @[email protected]等这些注解的类,则把这些类注册为bean-->
  12. </beans>

注:前面讲要使用注解需要配置: <context:annotation-config />但如果使用了@Component就不需要加它了,因为:<context:component-scan base-package="com.zchen">里面默认了<context:annotation-config />。

而@Controller, @Service, @Repository是@Component的细化,这三个注解比@Component带有更多的语义,它们分别对应了控制层、服务层、持久层的类。

@Component泛指组件,当组件不好归类的时候我们可以使用这个注解进行标注,(现在可以都用此注解,可以只使用单一组件)

Java代码

@Repository标签是用来给持久层的类定义一个名字,让Spring根据这个名字关联到这个类。

例如:

@Repository(value="userDao")-----也可以直接写@Repository("userDao"),如果没有命名,default name 是class name: UserDaoImpl
public class UserDaoImpl  implements UserDao{
   ........................................
}

保证这个类在bean.xml中<context:component-scan base-pakage="com.czhen">com.czhen pakage dir下。

注解Repository后可以直接使用@autowire 直接注入 managerImpl中,如:

@Autowire

private UserDaoImpl userDaoImpl;

一般来说@Controller(控制层) 是action入口,调用@Service(业务层) ,Service再调用@Repository (持久层)完成数据持久化。

时间: 2024-10-24 01:07:11

关于Spring注解 @Service @Component @Controller @Repository 用法的相关文章

Spring中的注解@Service @Component @Controller @Repository区别

@Service用于标注业务层组件, @Controller用于标注控制层组件(如struts中的action), @Repository用于标注数据访问组件,即DAO组件, @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注. 这四个注解其实都是和Component差不多只是在语义上有些不一样,修饰的方法 请看下面的一个例子 dao层 1 package cn.lonecloud.pagekageauto.dao; 2 3 4 /** 5 * dao层的接口 6

spring注解中@component是什么意思

@Component("userManager") public class UserManagerImpl implements UserManager { private UserDao userDao; public UserDao getUserDao() { return userDao; } @Resource public void setUserDao(UserDao userDao) { this.userDao = userDao; } /* * (non-Java

spring注解@service(&quot;service&quot;)括号中的service有什么用

相当于 xml配置中得 bean id = service 也可以不指定 不指定相当于 bean id = com. service.service 就是这个类的全限定名 好处是:同一个接口可以有多个实现方法,使用不同的注解value ,可以调取不同实现类的方法

Spring注解大全,汇总版

Spring使用的注解大全和解释 注解 解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上. @Service 组合注解(组合了@Component注解),应用在service层(业务逻辑层) @Reponsitory 组合注解(组合了@Component注解),应用在dao层(数据访问层) @Component 表示一

SpringMVC注解@Component、@Repository、@Service、@Controller区别

SpringMVC的四个基本注解annotation(控制层,业务层,持久层) -- @Component.@Repository @Service.@Controller SpringMVC中四个基本注解: @Component.@Repository   @Service.@Controller 看字面含义,很容易却别出其中三个: @Controller   控制层,就是我们的action层 @Service        业务逻辑层,就是我们的service或者manager层 @Repo

Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析

URL:http://www.ulewo.com/user/10001/blog/273 我们在使用spring的时候经常会用到这些注解,那么这些注解到底有什么区别呢.我们先来看代码 同样分三层来看: Action 层: package com.ulewo.ioc; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Co

Spring注解@Component、@Repository、@Service、@Controller区别

Spring注解@Component.@Repository.@Service.@Controller区别 Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层.业务层和控制层(Web 层)相对应.虽然目前这 3 个注释和 @Comp

Spring 注解@Component,@Service,@Controller,@Repository

Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层.业务层和控制层(Web 层)相对应.虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能.所以,如果 Web 应

Spring注解@Repository、@Service、@Controller、@Component

继前几章所讲解的注解中: http://www.cnblogs.com/EasonJim/p/6892280.html http://www.cnblogs.com/EasonJim/p/6899747.html http://www.cnblogs.com/EasonJim/p/6901115.html 发现上述遗漏了一些注解,比如:@Repository.@Service.@Controller.@Component,现在做如下补充: Spring自2.0版本开始,陆续引入了一些注解用于简化