`
bit1129
  • 浏览: 1067919 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Spring框架二】Spring常用注解之Component、Repository、Service和Controller注解

 
阅读更多

在Spring常用注解第一步部分【Spring框架一】Spring常用注解之Autowired和Resource注解(http://bit1129.iteye.com/blog/2114084)中介绍了Autowired和Resource两个注解的功能,它们用于将依赖根据名称或者类型进行自动的注入,这简化了在XML中,依赖注入部分的XML的编写,但是UserDao和UserService两个bean仍然要在XML中进行注册,能否将UserDao和UserService两个bean(将它们进行一般后,就是泛指持久化层bean和业务逻辑层bean)也通过注解的方式而无需在XML中进行声明?

 

答案是可以的,Spring提供了一组通过自动检测将对应的类对象注册为bean的注解,

  • Component
  • Repository
  • Service
  • Contoller

Component是一个广泛的概念,泛指一个项目中某一个组件。通常,一个项目根据分层设计为请求控制层,业务逻辑层,持久化层和模型层。由于模型是变化的(或者它的作用于是Request),模型层基本不会让Spring进行管理。Component可以用于请求控制层,业务逻辑层,持久化层任意一层的组件,为了使注解更加清晰,Spring针对每一层提供了不同的注解,

请求控制层,业务逻辑层,持久化层分别对应Controller,Service和Repository三个注解,这只是一个分层的约定,Spring不会强制业务逻辑层的Service一定使用@Service注解,也不会强制持久化层一定使用@Repository注解,或者说使用了@Repository注解就一定表示持久化层。@Component,@Repository,@Service,@Controller是可以通用的,只不过用了@Repository,@Service,@Controller更清晰直观的表示注解的类是一个持久化层的组件,业务逻辑层的组件,请求控制组件

 

正如为了使用@Autowired和@Resource注解,在Spring的配置文件中,需要加上一行XML配置

 

 

 <context:annotation-config/>

 

为了使Spring自动识别项目中的自动注册bean的注解生效,需要在XML配置中添加如下一行:

 

 

    <context:component-scan base-package="com.tom.user"/>
 

 

 

实例

1. UserDao.java需要添加@Repository注解

2. UserService.java需要添加@Service注解,UserServer依赖的IUserDao字段需要添加@Autowired注解

3. Spring配置文件的内容:

 

 

<?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:context="http://www.springframework.org/schema/context"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans.xsd
						http://www.springframework.org/schema/aop
						http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
						http://www.springframework.org/schema/context
						http://www.springframework.org/schema/context/spring-context.xsd
						http://www.springframework.org/schema/tx
						http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
    
    <!--使注解@Autowired,@Resource生效--> 
    <context:annotation-config/> 
    <!--使注解@Component,@Repository,@Service,@Controller生效-->
    <context:component-scan base-package="com.tom.user"/>
 </beans>
 

 

 4. 如果@Service和@Repository注解,全部替换为@Component注解,结果也是一样的

5. 此时的UserService没有bean的名称,如何获得UserService在Spring中注册的实例,通过ApplicationContext的根据类型获得bean实例的方法ApplicationContext.getBean(Class beanClazz)

6. @Component,@Repository,@Service,@Controller都有一个value属性,为value指定一个有意义的名义,比如@Service(value="userService"),那么可以通过userService这个名字来获取UserService在Spring配置的实例

 

 

        ClassPathXmlApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext-autowired.xml");
        IUserService userService = cxt.getBean(UserService.class);
//        IUserService userService = cxt.getBean("userService", UserService.class);

 

 

 

 

分享到:
评论

相关推荐

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

    在 Spring 框架中,@Component、@Repository、@Service、@Controller 是四个常用的注解,它们都是继承自 @Component 注解,用于标注不同的组件或 Bean。下面我们将详细介绍这些注解的区别和使用场景。 @Component ...

    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中常用注解

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

    对Spring中注解怎么实现的一些基本原理

    在Spring中,常见的注解如`@Autowired`、`@Component`、`@Service`、`@Repository`和`@Controller`等,用于标记类、方法或字段,以便Spring容器进行自动配置和管理。 **注解的处理过程:** 1. **扫描和发现**:...

    浅谈spring 常用注解

    例如,使用@Repository注解来标识数据访问层,使用@Service注解来标识业务层,使用@Controller注解来标识控制层。 需要注意的是,在使用这些注解时,需要遵循Spring的命名约定和编程规范,以便提高代码的可读性和...

    java spring 框架及注解 总结

    以下是一些常用的Spring注解: 1. `@Component`:这是Spring中的基础注解,用于标记一个类为Bean,通常用于普通POJO对象。Spring会自动扫描并管理这类Bean。 2. `@Service` 和 `@Repository`:这两个注解是 `@...

    Spring demo 自动检测注解

    7. **组件扫描**:Spring的`@Component`、`@Service`、`@Repository`和`@Controller`等注解用于标记组件类,配合`@ComponentScan`可以自动检测并注册这些类到IoC容器,从而实现bean的自动创建和依赖注入。...

    spring注解笔记

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

    Spring Boot 常用注解.rar

    该注解用于标记一个类为Spring的Bean,它是@Component, @Service, @Repository, @Controller的父注解。Spring Boot会自动扫描并管理这些Bean。 5. **@RestController** 继承自@Controller,用于标记控制器类,...

    spring3.x注解

    在 Spring 3.x 中,提供了多种用于类注册的注解,如 @Component、@Repository、@Service、@Controller 等。 1. @Component @Component 注解是所有受 Spring 管理组件的通用形式,默认的名称(id)是小写开头的非...

    Spring框架xml注解配置方式实例

    例如,可能会有一个`@Component`注解的类表示一个Spring Bean,或者一个`@Service`、`@Repository`或`@Controller`注解的类,分别对应服务层、数据访问层和控制器层。另外,类中可能还有`@Autowired`注解来自动装配...

    ssh框架构建 hibernate注解 spring注解

    Spring注解如`@Component`、`@Service`、`@Repository`和`@Controller`用于标记bean,使得Spring容器能够自动检测和管理这些bean。此外,`@Autowired`注解用于自动装配bean的依赖,而`@Transactional`注解则可以声明...

    Spring java注解,元注解和自定义注解

    以下是一些常用的Spring注解: 1. **@Component** - 用于标记一个类作为Spring管理的Bean。 - 可以配合@ComponentScan注解使用,自动扫描指定包下的所有组件。 2. **@Service** - 特别适用于业务逻辑层的服务...

    Spring系列之Spring常用注解总结1

    此外,Spring还提供了其他一些常用的注解,如@Service、@Repository和@Controller,它们分别用于标记业务层、数据访问层和控制层的bean。这些注解配合@Component,可以实现基于组件扫描的自动化配置,进一步减少.xml...

    学习Spring笔记_Annotation(注解)_Component

    如果需要更具体的语义,可以使用它的派生注解,如`@Service`(用于业务层)、`@Repository`(用于数据访问层)和`@Controller`(用于表现层)。 2. **组件扫描(Component Scanning)**:Spring通过组件扫描自动...

    Spring 注解 小例子

    在Spring框架中,注解是一种强大的工具,它简化了配置并增强了代码的可读性。Spring注解的主要目的是消除XML配置...Spring注解的强大之处在于它们的灵活性和组合能力,使得开发者能够根据需求定制化应用的配置和行为。

    spring常用注解

    Spring框架是Java开发中最常用的轻量级框架之一,以其IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)两大核心特性深受开发者喜爱。本文将深入探讨Spring框架中的常用...

    Struts2+spring注解配置简介

    Spring提供了如@Component、@Service、@Repository和@Controller等注解,用于标记Java类作为Spring容器中的bean。例如,@Component可以用来定义一个基础组件,@Service通常用于业务逻辑层,@Repository用于数据访问...

    spring使用注解依赖jar

    除了依赖注入,Spring还提供了一些其他的注解,如`@Component`、`@Service`、`@Repository`和`@Controller`,它们用于定义不同类型的bean,帮助Spring容器管理这些bean的生命周期。 1. `@Component`:这是最基础的...

Global site tag (gtag.js) - Google Analytics