Spring注解

原创 2016年05月30日 22:59:17

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

在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。
所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。

@Service用于标注业务层组件

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

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

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

2、component-scan自动扫描

component-scan标签默认情况下自动扫描指定路径下的包(含所有子包),将带有@Component、@Repository、@Service、@Controller标签的类自动注册到spring容器。对标记了 Spring's @Required、@Autowired、JSR250's @PostConstruct、@PreDestroy、@Resource、JAX-WS's @WebServiceRef、EJB3's @EJB、JPA's @PersistenceContext、@PersistenceUnit等注解的类进行对应的操作使注解生效(包含了annotation-config标签的作用)。

<context:component-scan base-package="com.test.controller" />


3、Spring @Resource、@Autowired、@Qualifier的注解注入及区别

pring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖。在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入。虽然@Resource和@Autowired都可以来完成注入依赖,但它们之间是有区 别的。首先来看一下:

 a。@Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入;

 b。@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用;

 c。@Resource注解是又J2EE提供,而@Autowired是由Spring提供,故减少系统对spring的依赖建议使用  

       @Resource的方式;

d。 @Resource和@Autowired都可以书写标注在字段或者该字段的setter方法之上


在java代码中可以使用@Autowire或者@Resource注解方式进行装配,这两个注解的区别是:
@Autowire 默认按照类型装配,默认情况下它要求依赖对象必须存在
如果允许为null,可以设置它required属性为false,如果我们想使用按照名称装配,可 以结合@Qualifier注解一起使用;

@Resource默认按照名称装配,当找不到与名称匹配的bean才会按照类型装配,可以通过name属性指定,如果没有指定name属 性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找 依赖对象.

@Resource(name="loginService") 
    private LoginService loginService;
 
 @Autowired(required=false)@Qualifier("loginService") 
    private LoginService loginService;



相关文章推荐

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

  • 2017年03月20日 12:48
  • 3KB
  • 下载

spring-aop和注解的实例

  • 2017年01月13日 17:33
  • 10KB
  • 下载

Spring3+Hibernate3(Jpa) 配置多个数据源的解决方案(基于注解)

----------------配置文件-------------------------------- -------------------------------------META-INF/...

spring mvc常用注解用法说明

  • 2015年08月26日 09:49
  • 50KB
  • 下载

Spring非注解方式学习

  • 2015年08月06日 16:55
  • 36KB
  • 下载

(9) 使用Spring的注解方式实现AOP入门 以及 细节

1:AOP的概念 Aspect(切面):指横切性关注点的抽象即为切面,它与类相似,只是两者的关注点不一样,类是对物体特征的抽象,而切面横切性关注点的抽象. joinpoint(连接点):所谓连...

Spring3_MVC注解教程

  • 2014年11月19日 10:45
  • 1.42MB
  • 下载

Spring3注解

  • 2015年01月19日 13:24
  • 2.56MB
  • 下载

SpringMVC+MyBatis - 7 Spring自动扫描注解类的冲突问题

SpringMVC+MyBatis - 7 Spring自动扫描注解类的冲突问题 Spring MVC项目中通常会有二个配置文件,sprng-servlet.xml和applicationC...
  • nhm_lxy
  • nhm_lxy
  • 2016年07月30日 10:14
  • 180

Spring3_MVC注解

  • 2014年09月10日 11:50
  • 2.62MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring注解
举报原因:
原因补充:

(最多只允许输入30个字)