Spring注解

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;



阅读更多
个人分类: java Spring
上一篇Spring execution 表达式
下一篇单例模式(java程序性能优化笔记)
想对作者说点什么? 我来说一句

Spring MVC 基于注解实例

2010年07月11日 7.19MB 下载

全面剖析spring注解视频

2018年05月22日 64B 下载

spring注解笔记

2017年10月20日 378KB 下载

spring注解aop demo

2010年11月12日 48KB 下载

spring注解驱动

2018年07月11日 5.38MB 下载

spring注解使用

2011年04月11日 109KB 下载

spring 支持@RequestBody注解依赖包

2017年09月26日 2.68MB 下载

Spring通过注解实现IOC

2018年04月18日 2.53MB 下载

Spring通过注解实现AOP

2018年04月17日 4.7MB 下载

没有更多推荐了,返回首页

关闭
关闭