Spring框架-构造注入的属性问题-type属性

还是使用上面一个小demo,进行测试,验证一个问题,废话不多说了,上代码进行比较

复制代码
 1 package service.impl;
 2 
 3 import service.UserService;
 4 import dao.UserDao;
 5 import entity.User;
 6 
 7 /**
 8  * 用户业务类,实现对User功能的业务管理
 9  */
10 public class UserServiceImpl implements UserService {
11 
12     // 声明接口类型的引用,和具体实现类解耦合
13     private UserDao dao;
14     private String s1;
15     private String s2;
16     private int i1;
17     
18 
19     // 生成无参构造方法
20     public UserServiceImpl() {
21 
22     }
23 
24     // 带参数构造方法   为dao进行赋值
25     public UserServiceImpl(UserDao dao) {
26         this.dao = dao;
27     }
28     public UserServiceImpl(UserDao dao,String s1) {
29         this.dao = dao;
30         this.s1=s1;
31     }
32     public UserServiceImpl(String s2,UserDao dao) {
33         this.dao = dao;
34         this.s2=s2;
35     }
36     public UserServiceImpl(int i1,UserDao dao) {
37         this.dao = dao;
38         this.i1=i1;
39     }
40 
41 
42     public UserDao getDao() {
43         return dao;
44     }
45 
46     // dao 属性的setter访问器,会被Spring调用,实现设值注入
47     public void setDao(UserDao dao) {
48         this.dao = dao;
49     }
50 
51     public void addNewUser(User user) {
52         // 调用用户DAO的方法保存用户信息
53         dao.save(user);
54         System.out.println("s1="+s1);
55         System.out.println("s2="+s2);
56         System.out.println("i1="+i1);
57     }
58 }
复制代码

核心配置文件:

<bean id="UserService" class="service.impl.UserServiceImpl">
<!--通过构造函数的方式,实现构造注入 -->
<constructor-arg>
  <ref bean="userDao" />
</constructor-arg>
<constructor-arg>
  <value>123</value>
</constructor-arg>
</bean>

运行结果:

保存用户信息到数据库
s1=null
s2=123
i1=0

由此可见,是没有附上值的 ,为i1变量

解决办法:对核心配置文件进行修改,使用type属性,指定数据类型

 

 运行结果:

保存用户信息到数据库
s1=null
s2=null
i1=123

posted on   ~码铃薯~  阅读(400)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示