美文网首页
xml与注解同时使用,且类名称相同会怎么样?

xml与注解同时使用,且类名称相同会怎么样?

作者: 尘埃里的玄 | 来源:发表于2021-01-27 11:09 被阅读0次

主程序如下,基于spring的依赖注入:

public class UserServImpl implements UserServ{
@autowired

private UserDao userDao;

....

}

1、xml中配置bean id 与类名一致:

<bean id="UserServ" class="com.impl.UserServImpl" />

<bean id="UserDao" class="com.db.UserDao" />
整个spring容器有且只有一个UserDao实例,autowired通过 byType自动装载,程序正常运行;

2、xml中配置两个bean id与类名一致,这里注意大小写

<bean id="UserServ" class="com.impl.UserServImpl" />

<bean id="UserDao" class="com.db.UserDao" />

<bean id=" userDao" class="com.db.UserDao" />
spring容器有多个类UserDao的实例时,autowired通过 byName装载,由于autowired没有显式标明待注入的实例名称name,程序自动装载name为userDao的实例,程序正常运行;同时说明bean中name默认与id名是相同的,在3中有证明。

3、xml中配置两个bean id与类名不一致
<bean id="UserServ" class="com.impl.UserServImpl" />

<bean id="UserDao" class="com.db.UserDao" />

<bean id="userDaoAAA" class="com.db.UserDao" />
spring容器有多个UserDao实例,autowired通过类型 byName装载,由于autowired没有显式标明注入的实例名称name,程序自动装载name为userDao的实例,由于bean默认name与id一致,spring无法找到名字为userDao的实例,程序报错;证明了2的结论。
4、xml与注解同时使用,且名称相同

注解如下

@Service("UserDao")

public class UserDao {
}

配置如下

<bean id="UserServ" class="com.impl.UserServImpl" />

<bean id="UserDao" class="com.db.UserDao" />

当出现两个相同名称实例,spring会覆盖其中一个,xml优先级高于注解;xml中同时配置两个相同id的bean,直接校验不通过报错。

覆盖代码打印如下:

  • Overriding bean definition for bean 'UserDao': replacing [Generic bean: class [com.UserDao]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0;

5、xml与注解同时使用,beand的id不同,结果同2和3;

相关文章

  • xml与注解同时使用,且类名称相同会怎么样?

    主程序如下,基于spring的依赖注入: public class UserServImpl implements...

  • Spring讲解(四)

    Spring 中使用注解注入 注解:就是一个类,使用 @ 注解名称。实际开发中:使用注解取代 xml 配置文件。 ...

  • JAXB注解整理

    注解解释@XmlRootElement --- 类级别注解将类映射为Xml全局元素,也就是根元素。常与@Xml...

  • Spring常用注解配置

    准备工作 applicationContext.xml 添加命名空间和约束,适用于xml和注解同时使用 常用注解 ...

  • Spring-003-bean管理(注解)

    代码里面的一些特殊的标记,使用注解可以完成特定的功能 注解写法 @注解名称(属性名称=属性值) 注解使用在类上面,...

  • 属性property介绍:1-属性定义

    属性property在类定义中使用非常普遍,属性定义后,会创建一个与该属性名称同名且带下划线的实例变量,与此同时,...

  • spring(二)

    用注解代替xml配置 1.首先在配置文件中打开注解配置xml的开关 2.在Bean的类中使用注解 3.在注解中功能...

  • Java:spring框架(2)IOC注解

    一.创建XML文件,配置XML文件 二.创建User类,设置类注解 三.创建UserService类,设置属性注解...

  • Hibernate学习笔记(四) 注解

    目录 1.注解步骤2.类的注解3.属性的注解4.关系的注解5.注解与XML 一、注解步骤 以实体类Product为...

  • spring常用注解

    本次主要介绍Spring注解。 注解分为两类: 1、一类是使用Bean,即是把已经在xml文件中配置...

网友评论

      本文标题:xml与注解同时使用,且类名称相同会怎么样?

      本文链接:https://www.haomeiwen.com/subject/ggnozktx.html