频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
Spring的@Autowired注解
2011-06-19 15:47:29      个评论      
收藏   我要投稿

Java代码 
@Retention(RetentionPolicy.RUNTIME)  
@Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD})  
public @interface Autowired {  
 
    /** 
     * Declares whether the annotated dependency is required. 
     * <p>Defaults to <code>true</code>. 
     */ 
    boolean required() default true;  
 

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD})
public @interface Autowired {

 /**
  * Declares whether the annotated dependency is required.
  * <p>Defaults to <code>true</code>.
  */
 boolean required() default true;

} 通过源码我们知道他是spring的一个注解接口,有一个方法

 

Java代码 
boolean required() default true; 

boolean required() default true;

 使用的时候必须满足如下条件:

1.spring的配置文件必须加入能够识别注解的东东

org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor

或者使用xml标注如下(注意版本)

xmlns:context

<context:component-scan base-package="org.javaeye.*"/>

支持4种注解分别为@Component, @Serivce, @Controller, @Repository

@Controller:控制层

@Serivce:业务逻辑层

@Repository:持久层

2.有注解存在

 

 

Java代码 
@Autowired 
   UserService userService; 

 @Autowired
    UserService userService; 3.有对应的setter方法

 

Java代码 
public void setUserService(UserService userService) {  
       this.userService = userService;  
   } 

 public void setUserService(UserService userService) {
        this.userService = userService;
    } 4.如果是接口或者抽象类的话那么需要实现类唯一,否则创建实例出错

 

Java代码 
org.springframework.beans.factory.NoSuchBeanDefinitionException:   
No unique bean of type   
[com.sohu.suc.splatform.service.UserService] is defined:   
expected single matching bean but found 2:  
 [userServiceHibernateImpl, userServiceImp] 

org.springframework.beans.factory.NoSuchBeanDefinitionException:
No unique bean of type
[com.sohu.suc.splatform.service.UserService] is defined:
expected single matching bean but found 2:
 [userServiceHibernateImpl, userServiceImp] 
 5.接口的实现必须让spring认识,以bean的方式配置或者加注解让spring认识

 

Java代码 
@Service 
public class UserServiceImpl implements UserService {  
。。。。。。。  

@Service
public class UserServiceImpl implements UserService {
。。。。。。。
} 综上可得spring只管理他认识的bean,有2中方式让spring知道bean的存在

1.注解方式

2.bean配置

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 注解
上一篇:Java BigDecimal转换、除法“陷阱”
下一篇:springmvc+freemarker与servlet性能对比
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站