spring mvc常用注解@Component @Controller @Service @Repository
- 博客分类:
- ssih...
注解用了之后,会在*.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方法了。
我们还得有配置文件进行配置:
这样就把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。
@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 MVC Controller单例陷阱
2014-09-12 10:01 970Spring MVC Controller默认是单例的: 单 ... -
Spring MVC模型(Model)层和视图(View)层
2014-04-20 18:57 0Spring MCV中Model层是View层的数据容器,Js ... -
springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
2014-04-20 18:52 3115spring mvc处理方法支持如下的返回方式:ModelAn ... -
applicationContext.xml 配置文件在web.xml中的写法
2014-03-11 16:28 2825applicationContext.xml 配置文件的一些认 ... -
SpringMVC和Struts2的比较
2014-02-27 19:12 786通俗说Spring的作用 Spring ... -
Struts-config.xml配置文件《action-mappings》元素的详解
2014-02-26 13:12 2492action-mappings 该元素用于将Action元素定 ... -
使用Hibernate向mysql数据库中插入中文,数据库中显示??乱码
2014-02-24 23:02 1049[size=medium]通过网上学习,要求修改Hiberna ... -
在web.xml中通过contextConfigLocation配置spring
2014-02-24 21:19 2366在web.xml中通过contextConfigLocatio ... -
Struts-config.xml配置action-mappings元素略计
2014-02-24 16:58 673action-mappings 该元素用于将Action元素 ... -
Spring的DataAccessException略记
2013-07-08 19:23 2526Spring的DAO框架没有抛出 ... -
Result Type(Struts.xml配置)
2013-06-25 08:35 659一个提交到服务器的处理通常可以分为两个阶段: 第一个阶段查询服 ... -
ibatis常用标记略记
2013-06-23 21:12 1020isNull判断property字段是否是null,用isEm ... -
ibatis的iterate使用
2013-06-23 20:38 1121ibatis的iterate使用 Iterate:这属性遍历 ... -
Struts2 两个Action之间动态传参
2013-06-21 10:00 1097两个Action 动态传参数 研究了近两天的时间 ... -
spring入门之—第一步
2013-06-13 15:26 757注: 本文用的是spring-framework-3.1.1. ... -
Spring的ApplicationContext加载多个配置文件的三种方式
2013-06-13 15:09 18731.第一种,使用数组方式 ApplicationConte ... -
详解iBaits中SqlMapClientTemplate的使用
2013-06-05 16:07 0pache iBatis(现已迁至Google Code下发展 ... -
Struts2.0默认支持多种格式的result type
2013-06-05 16:00 904<action name="attachmen ... -
maven+ssi对oracle实现增删改查(二)
2013-06-05 12:06 12411.index.jsp访问项目默认页面 <%@ page ... -
maven+ssi对oracle实现增删改查(一)
2013-06-05 11:40 1265-. 1.Oracle10g 的表结构语句,需要内容的自己添加 ...
相关推荐
本文将重点介绍四种常用的Spring注解——`@Component`、`@Repository`、`@Service`、`@Controller`的区别及其应用场景。 #### 二、Spring 注解概述 ##### 2.1 @Component `@Component`是最基础的一种注解,用于...
本篇文章将深入探讨四个关键的注解:`@Component`、`@Controller`、`@Service`和`@Repository`,它们是Spring框架中的核心注解,用于定义不同层次的组件。 首先,`@Component`注解是最基础的,它代表了一个通用的...
在本示例中,我们将深入探讨如何使用Spring MVC中的注解进行开发,特别是`@Controller`,`@Service` 和 `@Repository` 这三个核心注解。 1. **`@Controller` 注解**: `@Controller` 是Spring MVC中用于标记一个类...
这个注解及其派生注解(如`@Service`、`@Repository`和`@Controller`)是Spring依赖注入(Dependency Injection, DI)机制的基础。在这篇文章中,我们将深入探讨`@Component`注解的各个方面,以及如何在实际应用中...
12. **@Component, @Service, @Repository**: 这些是Spring的组件注解,用于定义Bean。@Component是最基本的,@Service通常用于业务逻辑层,@Repository用于数据访问层。 以上注解是Spring MVC开发中最为常见的,...
在本节中,我们主要介绍几个Spring中常用的注解,它们分别是@Component、@Controller、@Service和@Repository,这些注解用于将Java类声明为Spring管理的Bean。 #### 2. @Component注解 @Component是一个通用的构...
8. `@Controller`, `@Service`, `@Repository`: 这些注解是Spring MVC中的,分别用于标记控制器、服务和数据访问对象。它们与前面提到的`@Component`等配合使用,构建出完整的三层架构。 9. `@Value`: 用于注入配置...
例如,`@Component`、`@Service`、`@Repository`和`@Controller`用于标记不同的bean,它们都继承自`@Component`,并由Spring自动扫描和管理。`@Autowired`用于依赖注入,根据类型或名称自动装配bean。`@Scope`定义...
### Spring MVC 注解详解 #### 一、Spring MVC 注解简介 Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它实现了 MVC(Model-View-Controller)设计模式,并且提供了丰富的注解支持,使得...
例如,`@Component`、`@Service`、`@Repository`和`@Controller`用于标记不同层次的组件,而`@Autowired`则用于自动装配依赖。 接下来,Spring MVC是Spring框架的一部分,专门用于处理Web请求。它采用模型-视图-...
通常,我们还会使用@Component的子注解,如@Service、@Repository和@Controller来更精确地标识不同角色的类。 5. **@Controller**: 标识一个类作为Spring MVC的控制器,负责处理HTTP请求。 6. **@RequestMapping**...
这行配置指定Spring容器扫描指定包及其子包下带有`@Component`, `@Service`, `@Repository`, `@Controller`等注解的类,并自动注册它们为Bean。 ##### 2. @Controller 注解的应用 在Spring 2.5之前,所有的控制器...
2. `<context:component-scan>`:通过使用 `component-scan` 注解,Spring 会自动扫描指定包及其子包下的所有类,寻找带有特定注解(如 `@Controller`, `@Service`, `@Repository`, `@Component`)的类并将其注册为 ...
这与`@Component`、`@Service`和`@Repository`注解的作用类似,都是将类纳入Spring的IoC容器。 2. `@RequestMapping("/forum.do")`:这个注解定义了HTTP请求与Controller方法的映射关系。在本例中,所有以`/forum....
全注解配置允许在类和方法级别定义bean,使用如@Service、@Repository和@Component等注解,以及@Autowired自动装配依赖。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来...
在本教程中,我们将看到如何通过注解来声明bean,如`@Component`、`@Service`、`@Repository`和`@Controller`,以及如何使用`@Autowired`进行自动装配。 2. **Spring MVC**:作为Spring框架的一部分,Spring MVC是...
在Spring框架中,@Component及其衍生的注解@Controller、@Service、@Repository是用于实现自动化的依赖注入与组件扫描,这是Spring框架的核心功能之一,让开发者能够以声明式的方式管理Java对象的生命周期,并且将...
Spring提供了几个`@Component`的派生注解,如`@Service`、`@Repository`和`@Controller`,它们在功能上与`@Component`相同,但提供了语义上的区别,方便代码管理和阅读。 - `@Service`:通常用于业务逻辑层...
6. **自动扫描和组件发现**:在Spring 2.5中,你可以通过设置`<context:component-scan>`标签启用组件扫描,让Spring自动发现并注册带有注解的类,包括`@Controller`、`@Service`、`@Repository`等。 7. **简化视图...