Spring框架xml配置中属性 ref 与 value的区别

刚开始学Spring框架时并没太关注这么细小的区别,偶然一次配置xml时对同一个bean的引用,两个不同的类属性都用ref一个正确一个报了错误,当时觉得和不解。

后来看了引用对象的源码,才发现虽然引用的是同一个bean但两个对象的属相类型明显不一样,一个是对象引用类型,一个是字符串引用类型。看到这里终于明白

ref与value的区别了。ref代表的是引用这个对象,相当于传入得是对象的引用。而value是引入的这个对象名字的字符串。至于使用哪个是依据你所用的属性类型决定的。

不是随便使用的。对于新手可能在IDE的帮助下这两个属性都会显示出来,导致了误解,以为使用哪个都可以,起码最开始我就被误导了。大笑

ref代表的是引用这个对象,ref代表的是引用这个对象,ref代表的是引用这个对象

value是引入的这个对象名字的字符串,value是引入的这个对象名字的字符串,value是引入的这个对象名字的字符串

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架,我们可以使用XML配置文件来定义和配置应用程序的组件,包括Service组件。以下是一个示例bean.xml配置文件,用于定义一个名为"userService"的Service组件: ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean id="userService" class="com.example.UserService"> <property name="userRepository" ref="userRepository"/> </bean> <bean id="userRepository" class="com.example.UserRepository"> <constructor-arg ref="dataSource"/> </bean> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> </beans> ``` 在上面的示例,我们定义了一个名为"userService"的Service组件,其类是"com.example.UserService"。该组件需要一个名为"userRepository"的依赖,因此我们还定义了一个名为"userRepository"的组件,其类是"com.example.UserRepository"。"userRepository"组件需要一个名为"dataSource"的依赖,因此我们还定义了一个名为"dataSource"的组件,其类是"org.apache.commons.dbcp2.BasicDataSource"。 我们可以通过在代码加载该配置文件来初始化Spring容器,并使用容器的"userService"组件: ``` ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); UserService userService = (UserService) context.getBean("userService"); ``` 这样就可以使用定义好的Service组件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值