@Controller控制层 @Service服务层 @Repository持久层 @Component组件

本文介绍了SpringMVC中@Controller、@Service、@Repository和@Component注解的用途。@Repository用于标记DAO类,使Spring自动扫描并注册Bean,处理数据访问异常。@Service与@Component相似,常用于服务层。@Controller用于控制层,处理前端请求。这些注解简化了Spring应用的开发,并允许通过@Scope指定Bean的作用域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC@Controller、@Service、@Repository和 @Component 将类标识为Bean,这样Spring就能对其依赖注入

Spring引入了一些注解用于简化 Spring 的开发。

@Repository注解它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。
具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用Bean 的自动扫描功能,这可以通过实现。如下所示:
// 首先使用 @Repository 将 DAO 类声明为Spring Bean
package cn.jobs1127.dao;
@Repository
public class CommonHibernateBaseDaoImpl implements ICommonHibernateBaseDao {……}

// 其次,在 XML 配置文件中启动 Spring 的自动扫描功能

<beans> 
    ……
<context:annotation-config/>
<context:component-scan base-package="cn.jobs1127.dao"/>
……
 </beans> 

如此,我们就不再需要在 XML 中显式使用 进行Bean 的配置。Spring 在容器初始化时将自动扫描 base-package 指定的包及其子包下的所有 class文件,所有标注了 @Repository 的类都将被注册为 Spring Bean。

@Repository 只能标注在 DAO 类上。
该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。
Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。

@Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。接收前台的请求/参数通过@Service服务层进行数据库等操作,将数据库的信息返回到前端,根据需要进行控制、跳转等操作。

@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。

@Service 通常作用在业务层,也就服务层,但是目前该功能与 @Component 相同。在服务层通常自动注入与DB打交道的Dao Bean

通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring会自动创建相应的Bean对象,并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与 @Repository 是完全相同的。

与通过 XML 配置的 Spring Bean 一样,通过上述注解标识的Bean,其默认作用域是”singleton”单例模式,为了配合这四个注解,在标注 Bean 的同时能够指定 Bean 的作用域,Spring2.5 引入了 @Scope 注解。使用该注解时只需提供作用域的名称就行了,如下所示:

@Scope(“prototype”)
@Repository
public class DemoJobs1127 { … }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值