`

spring mvc常用注解@Component @Controller @Service @Repository

阅读更多
注解用了之后,会在*.xml文件中大大减少配置量。以前我们每个Bean都得到配置文件中配置关联下。spring2.5后,引入了完整的annotation配置注解,使得我们的程序配置更简单更容易维护。

@Component;@Controller;@Service;@Repository

      在annotaion配置注解中用@Component来表示一个通用注释用于说明一个类是一个spring容器管理的类。即就是该类已经拉入到spring的管理中了。而@Controller, @Service, @Repository是@Component的细化,这三个注解比@Component带有更多的语义,它们分别对应了控制层、服务层、持久层的类。

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


例如:

@Repository("userDao")
public class UserDaoImpl  implements UserDao{

   ........................................

}

声明了UserDaoImpl  在Spring容器中叫userDao这个名字。

@Service是用于服务层的IServiceImpl类文件,功能与@Repository类似。



另外标签:@Autowired 用来注入。

例如:

@Autowired
private UserDao userDao;

这样就注入进去了,相当于我们new了个实现类,我们就无需写setter方法了。

我们还得有配置文件进行配置:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:aop="http://www.springframework.org/schema/aop" 
       xmlns:tx="http://www.springframework.org/schema/tx" 
       xmlns:context="http://www.springframework.org/schema/context" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 
    <context:annotation-config/> 
    <context:component-scan base-package="com.zxr.manager"> 
        <context:include-filter type="regex" expression=".*DaoImpl"/> 
        <context:include-filter type="regex" expression=".*ServiceImpl"/> 
    </context:component-scan> 
</beans> 


这样就把com.zxr.manager包下的所有.*DaoImpl,.*ServiceImpl都注册关联到Spring容器中去了。

-------------------------------------------------------------
@Service用于标注业务层组件

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
注入方式:

把DAO实现类注入到action的service接口(注意不要是service的实现类)中,注入时不要new 这个注入的类,因为spring会自动注入,如果手动再new的话会出现错误,
然后属性加上@Autowired后不需要getter()和setter()方法,Spring也会自动注入。 

在接口前面标上@Autowired注释使得接口可以被容器注入,如:

[java] view plaincopy
@Autowired 
@Qualifier("chinese") 
private Man man;  
当接口存在两个实现类的时候必须使用@Qualifier指定注入哪个实现类,否则可以省略,只写@Autowired。
分享到:
评论

相关推荐

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

    本文将重点介绍四种常用的Spring注解——`@Component`、`@Repository`、`@Service`、`@Controller`的区别及其应用场景。 #### 二、Spring 注解概述 ##### 2.1 @Component `@Component`是最基础的一种注解,用于...

    解释@Component @Controller @Service @Repository

    本篇文章将深入探讨四个关键的注解:`@Component`、`@Controller`、`@Service`和`@Repository`,它们是Spring框架中的核心注解,用于定义不同层次的组件。 首先,`@Component`注解是最基础的,它代表了一个通用的...

    spring MVC 注解的使用例子

    在本示例中,我们将深入探讨如何使用Spring MVC中的注解进行开发,特别是`@Controller`,`@Service` 和 `@Repository` 这三个核心注解。 1. **`@Controller` 注解**: `@Controller` 是Spring MVC中用于标记一个类...

    Spring @compenent注解详解

    这个注解及其派生注解(如`@Service`、`@Repository`和`@Controller`)是Spring依赖注入(Dependency Injection, DI)机制的基础。在这篇文章中,我们将深入探讨`@Component`注解的各个方面,以及如何在实际应用中...

    spring-mvc注解详情

    12. **@Component, @Service, @Repository**: 这些是Spring的组件注解,用于定义Bean。@Component是最基本的,@Service通常用于业务逻辑层,@Repository用于数据访问层。 以上注解是Spring MVC开发中最为常见的,...

    spring注解笔记

    在本节中,我们主要介绍几个Spring中常用的注解,它们分别是@Component、@Controller、@Service和@Repository,这些注解用于将Java类声明为Spring管理的Bean。 #### 2. @Component注解 @Component是一个通用的构...

    Spring中常用注解

    8. `@Controller`, `@Service`, `@Repository`: 这些注解是Spring MVC中的,分别用于标记控制器、服务和数据访问对象。它们与前面提到的`@Component`等配合使用,构建出完整的三层架构。 9. `@Value`: 用于注入配置...

    spring mvc+ibatis+spring注解

    例如,`@Component`、`@Service`、`@Repository`和`@Controller`用于标记不同的bean,它们都继承自`@Component`,并由Spring自动扫描和管理。`@Autowired`用于依赖注入,根据类型或名称自动装配bean。`@Scope`定义...

    Spring_mvc注解

    ### Spring MVC 注解详解 #### 一、Spring MVC 注解简介 Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它实现了 MVC(Model-View-Controller)设计模式,并且提供了丰富的注解支持,使得...

    spring mvc + spring + hibernate 全注解整合开发视频教程 04

    例如,`@Component`、`@Service`、`@Repository`和`@Controller`用于标记不同层次的组件,而`@Autowired`则用于自动装配依赖。 接下来,Spring MVC是Spring框架的一部分,专门用于处理Web请求。它采用模型-视图-...

    spring_mvc注解总结

    通常,我们还会使用@Component的子注解,如@Service、@Repository和@Controller来更精确地标识不同角色的类。 5. **@Controller**: 标识一个类作为Spring MVC的控制器,负责处理HTTP请求。 6. **@RequestMapping**...

    spring3 mvc 注解action dao service 实例教程

    这行配置指定Spring容器扫描指定包及其子包下带有`@Component`, `@Service`, `@Repository`, `@Controller`等注解的类,并自动注册它们为Bean。 ##### 2. @Controller 注解的应用 在Spring 2.5之前,所有的控制器...

    spring mvc注解实例

    2. `&lt;context:component-scan&gt;`:通过使用 `component-scan` 注解,Spring 会自动扫描指定包及其子包下的所有类,寻找带有特定注解(如 `@Controller`, `@Service`, `@Repository`, `@Component`)的类并将其注册为 ...

    使用 Spring 2.5 基于注解驱动的 Spring MVC.doc

    这与`@Component`、`@Service`和`@Repository`注解的作用类似,都是将类纳入Spring的IoC容器。 2. `@RequestMapping("/forum.do")`:这个注解定义了HTTP请求与Controller方法的映射关系。在本例中,所有以`/forum....

    spring mvc + spring + hibernate 全注解整合开发视频教程 09

    全注解配置允许在类和方法级别定义bean,使用如@Service、@Repository和@Component等注解,以及@Autowired自动装配依赖。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来...

    spring mvc + spring + hibernate 全注解整合开发视频教程 03

    在本教程中,我们将看到如何通过注解来声明bean,如`@Component`、`@Service`、`@Repository`和`@Controller`,以及如何使用`@Autowired`进行自动装配。 2. **Spring MVC**:作为Spring框架的一部分,Spring MVC是...

    spring @component的作用详细介绍

    在Spring框架中,@Component及其衍生的注解@Controller、@Service、@Repository是用于实现自动化的依赖注入与组件扫描,这是Spring框架的核心功能之一,让开发者能够以声明式的方式管理Java对象的生命周期,并且将...

    spring注解属性的用法

    Spring提供了几个`@Component`的派生注解,如`@Service`、`@Repository`和`@Controller`,它们在功能上与`@Component`相同,但提供了语义上的区别,方便代码管理和阅读。 - `@Service`:通常用于业务逻辑层...

    使用 Spring 2_5 基于注解驱动的 Spring MVC

    6. **自动扫描和组件发现**:在Spring 2.5中,你可以通过设置`&lt;context:component-scan&gt;`标签启用组件扫描,让Spring自动发现并注册带有注解的类,包括`@Controller`、`@Service`、`@Repository`等。 7. **简化视图...

Global site tag (gtag.js) - Google Analytics