`

@Autowired默认按照类型进行注入

 
阅读更多
@Autowired默认按照类型进行注入
@Autowired @Qualifier("personDaoxxx")这样就是按照名称进行装配
@Autowired(required=true)必须注入值,不能为null,为false无论注入什么值都是null

以上都是手工装配
自动装配依赖对象
对于自动装配,大家了解一下就可以了,实在不推荐大家使用。例子:
<bean id=”…” class=”….”>
autowire属性取值如下:
byType:按类型装配,可以根据属性的类型,在容器中寻找根该类型匹配的bean.如果发现多个,那么将会抛出异常。如果没有找到,即属性值为null。
byName:按名称装配,可以根据属性的名称,在容器中寻找根该属性名相同的bean,如果没有找到,即属性值为null。
Constructor与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。
Autodetect:通过bean类的自省机制来决定是使用constructor还是byType方式进行自动装配。如果发现默认的构造器,那么将使用byType方式。

0


http://zhidao.baidu.com/link?url=4T5FVlKL1HqHHpGSCwCXI3h3QaZZ0HRe_9gnFuZE74pRMJ2L0LF64ZzoNVTAdq7y2EY_at8_5QVYsnhltr_o7K

@Component("userManager")
public class UserManagerImpl implements UserManager {
private UserDao userDao ;
         public UserDao getUserDao() {
  return userDao;
}
    @Resource    
public void setUserDao(UserDao userDao) {
  this.userDao = userDao;
}
  /* (non-Javadoc)
   * @see com.wjs.registration.service.UserManager#exists(com.wjs.registration.model.Users)
   */
  public boolean exists(Users u){
         return userDao.checkUserExistsWithName(u.getUsername());
   }
         /* (non-Javadoc)
   * @see com.wjs.registration.service.UserManager#add(com.wjs.registration.model.Users)
   */
        public void add(Users u){
         userDao.save(u);
         }
}
这里表示什么意思哦@Component("userManager")

在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释

这里就是说把这个类交给Spring管理,重新起个名字叫userManager,由于不好说这个类属于哪个层面,就用@Component

参考地址:http://www.ulewo.com/user/10001/blog/273
分享到:
评论

相关推荐

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    默认情况下,`@Autowired`按类型进行匹配,如果存在多个相同类型的bean,Spring会尝试通过bean名称来解决冲突。 现在,我们来看`@Bean`注解。`@Bean`用在方法上,告诉Spring该方法将返回一个要管理的bean实例。这个...

    1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf

    与`@Resource`不同,`@Autowired`主要通过类型匹配来找到合适的bean进行注入。例如: ```java @Autowired private DataSource dataSource; ``` 在这个例子中,Spring会查找类型为`DataSource`的bean,并将其注入到...

    SSH笔记-通过@Autowired配置注入关系

    你可以在XML中定义Bean的配置,然后在Java类中使用`@Autowired`进行注入。这种混合模式提供了更大的灵活性。 7. **基于注解的配置**:Spring 4更加强调基于注解的配置,它减少了XML配置文件的数量,使得代码更加...

    (转)Spring中@Autowired注解和@Resource注解的区别

    在实际应用中,通常推荐使用`@Autowired`,因为它提供了更强大的自动装配能力,包括基于类型、基于 Qualifier、基于父接口等多维度的注入方式。而`@Resource`更适合那些需要基于bean名称注入的场景,或者当你希望...

    Spring使用@Autowired注解自动装配

    在Spring框架中,`@Autowired`注解是一个关键特性,用于简化依赖注入的过程。依赖注入是一种设计模式,它允许我们解耦代码,提高模块的可测试性和可维护性。在这个主题中,我们将深入探讨`@Autowired`的工作原理、...

    Spring@Autowired注解与自动装配.rar

    - **类型匹配**:默认通过类型匹配,找到唯一匹配的bean进行注入。 - **@Qualifier注解**:当有多个相同类型的bean时,使用`@Qualifier`指定bean的id。 ```java @Autowired @Qualifier("specificService") private ...

    【Java面试】@Resource 和 @Autowired 的区别.doc

    @Autowired 是 Spring 框架提供的一个注解,默认是根据类型来实现 Bean 的依赖注入。@Autowired 注解里面有一个 required 属性,默认值是 true,表示强制要求 Bean 实例的注入,在应用启动的时候,如果 IOC 容器里面...

    HibernateDaoSupport 与@Autowired

    其工作原理是基于类型匹配(默认),如果存在多个候选bean,则可以通过`@Qualifier`进一步指定目标bean。例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository...

    Spring In Action 使用@Autowired 和@ Resource 自动装配Bean

    若没有指定名称,它将按类型进行装配,与`@Autowired`类似。与`@Autowired`不同的是,`@Resource`在Java EE环境中也适用,不仅限于Spring框架。 在实际应用中,选择`@Autowired`还是`@Resource`主要取决于你的需求...

    Spring @Autowired

    在`AutowireExample`项目中,可能包含了实际应用`@Autowired`的示例,这通常包括了创建多个Bean,定义主配置类,以及使用`@Autowired`进行依赖注入的类。通过阅读和理解这些代码,可以进一步加深对`@Autowired`的...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    当Spring容器初始化时,会扫描所有带有@Autowired的注解,然后通过BeanPostProcessor接口进行后处理,实现依赖注入。 这个过程大致分为以下几步: 1. 找到带有@Autowired的字段、方法或构造器。 2. 根据注解的配置...

    详解Spring @Autowired 注入小技巧

    我们都知道 @Autowired 可以根据类型(Type)进行自动注入,并且默认注入的 bean 为单例(SingleTon)的,那么我们可能会问,上面注入两次不会重复吗?答案是肯定的。而且每次注入的实例都是同一个实例。 下面我们...

    Spring注解开发

    spring注解开发@PreDestroy除了@Component外,Spring提供了3个功能基本和@...@Autowired 默认按照类型进行注入 如果存在两个相同Bean类型相同,则按照名称注入 @Autowired注入时可以针对成员变量或者setter方法

    学习Spring笔记_Annotation(注解)_Autowired_Qualifier

    `@Autowired`注解还支持一些可选属性,例如`required`(默认为true,表示必须注入,否则抛出异常),以及`@Autowired`可以应用于字段、构造器、方法和参数级别,提供了灵活的注入方式。 除了`@Autowired`,Spring...

    解决Springboot @Autowired 无法注入问题

    1. 注解的类型不匹配:确保被注入的bean与注入字段的类型一致,或者提供了正确的`@Qualifier`来指定特定的bean。 2. 非`@Component`注解的类:Spring默认只扫描`@Component`、`@Service`、`@Repository`和`@...

    spring的annotation的autowired

    默认情况下,`@Autowired`是基于类型的,即Spring会查找与目标类型匹配的Bean,如果找到了就注入,如果没有找到则抛出异常。 ### 2. 使用方法 #### 2.1 基于类型的自动装配 在字段、构造函数、方法或参数级别上...

    你所不知道的Spring的@Autowired实现细节分析

    在Spring框架中,`@Autowired`注解是一种自动装配依赖的方式,它允许开发者在不编写显式依赖注入代码的情况下,自动将Bean的依赖注入到需要的地方。本文将深入探讨`@Autowired`的实现原理。 1. **BeanPostProcessor...

    Autowired报错原因分析和4种解决方案.docx

    2. **@Autowired默认行为**:@Autowired默认要求注入的对象必须存在且不为空。如果IDEA无法确定目标对象的存在性,则会发出警告。 #### 三、解决方案 针对@Autowired报错的情况,我们可以采取以下几种方式来解决: ...

    Spring框架中 @Autowired 和 @Resource 注解的区别

    默认情况下,`@Autowired`不考虑属性名,而是根据类型来决定注入哪个Bean。 另一方面,`@Resource`注解来自于JSR-250规范,它的主要区别在于默认按名称(byName)进行注入。也就是说,如果在字段或方法上使用`@...

    springMVC-annotation注解介绍

    @Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起...

Global site tag (gtag.js) - Google Analytics