Spring框架构造注入type属性实例详解

作者:dongyaotou 时间:2021-10-04 19:45:19 

这篇文章主要介绍了Spring框架构造注入type属性实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

进行测试,验证一个问题,废话不多说了,上代码进行比较


package service.impl;

import service.UserService;
import dao.UserDao;
import entity.User;

/**
* 用户业务类,实现对User功能的业务管理
*/
public class UserServiceImpl implements UserService {

// 声明接口类型的引用,和具体实现类解耦合
 private UserDao dao;
 private String s1;
 private String s2;
 private int i1;

// 生成无参构造方法
 public UserServiceImpl() {

}

// 带参数构造方法  为dao进行赋值
 public UserServiceImpl(UserDao dao) {
   this.dao = dao;
 }
 public UserServiceImpl(UserDao dao,String s1) {
   this.dao = dao;
   this.s1=s1;
 }
 public UserServiceImpl(String s2,UserDao dao) {
   this.dao = dao;
   this.s2=s2;
 }
 public UserServiceImpl(int i1,UserDao dao) {
   this.dao = dao;
   this.i1=i1;
 }

public UserDao getDao() {
   return dao;
 }

// dao 属性的setter访问器,会被Spring调用,实现设值注入
 public void setDao(UserDao dao) {
   this.dao = dao;
 }

public void addNewUser(User user) {
   // 调用用户DAO的方法保存用户信息
   dao.save(user);
   System.out.println("s1="+s1);
   System.out.println("s2="+s2);
   System.out.println("i1="+i1);
 }
}

核心配置文件:


<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属性,指定数据类型

Spring框架构造注入type属性实例详解

运行结果:


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

来源:https://www.cnblogs.com/dongyaotou/p/12115500.html

标签:Spring,框架,type,属性
0
投稿

猜你喜欢

  • 详解如何使用Java编写图形化的窗口

    2022-04-18 03:25:52
  • C#将图片和字节流互相转换并显示到页面上

    2021-08-18 23:41:31
  • PipedWriter和PipedReader源码分析_动力节点Java学院整理

    2022-03-13 19:40:16
  • Java Web开发环境配置详解

    2023-03-05 03:32:37
  • 详解Java中的三种流程控制语句

    2023-11-04 17:06:34
  • maven 配置多个仓库的方法

    2021-06-09 03:30:24
  • Java中LinkedList和ArrayList的效率分析

    2023-02-12 06:21:55
  • 29个要点帮你完成java代码优化

    2022-11-06 05:16:26
  • c# BackgroundWorker使用方法

    2021-05-27 00:49:12
  • C#实现斐波那契数列的几种方法整理

    2023-09-02 05:05:58
  • 完美解决springboot中使用mybatis字段不能进行自动映射的问题

    2023-07-27 00:41:35
  • Android实现二维码扫描和生成的简单方法

    2022-06-18 18:15:52
  • Android ListView和Adapter数据适配器的简单介绍

    2023-04-16 04:07:12
  • C#构造函数详解

    2023-02-25 22:38:50
  • Android实现网络多线程断点续传下载功能

    2021-05-29 18:22:24
  • Java实现字符串转换成可执行代码的方法

    2022-06-14 02:30:49
  • Android学习教程之悬浮窗菜单制作(9)

    2022-03-27 08:17:13
  • C# Winform消息通知之系统本地通知local toast notification

    2023-02-01 04:14:02
  • springboot项目访问静态资源的配置代码实例

    2021-11-16 02:07:49
  • DevExpress中GridControl列转义的实现方法

    2022-11-10 05:14:31
  • asp之家 软件编程 m.aspxhome.com