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

 更新时间:2019年12月31日 10:35:32   作者:dongyaotou  
这篇文章主要介绍了Spring框架构造注入type属性实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了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属性,指定数据类型

运行结果:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 重学SpringBoot3之日志Logging使用方式

    重学SpringBoot3之日志Logging使用方式

    在日常开发中会遇到不同的异常,日志方便我们去排查处理,这篇文章主要给大家介绍了关于重学SpringBoot3之日志Logging使用方式的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • springboot3.X 无法解析parameter参数问题分析

    springboot3.X 无法解析parameter参数问题分析

    本文介绍了Spring Boot 3.2.1版本中调用接口时出现的参数解析问题,该错误是由Spring新版本加强的错误校验和报错提示导致的,在Spring 6.1之后,官方要求URL中的传参必须使用`@PathVariable`声明用于接收的变量,而不能省略`@RequestParam`注解,感兴趣的朋友一起看看吧
    2025-03-03
  • Java使用TCP套接字实现多人聊天功能详解

    Java使用TCP套接字实现多人聊天功能详解

    这篇文章主要介绍了Java使用TCP套接字实现多人聊天功能,结合实例形式详细分析了java使用socket通信实现tcp协议下的聊天功能客户端与服务器端相关实现技巧,需要的朋友可以参考下
    2019-10-10
  • Java微信公众平台开发(6) 微信开发中的token获取

    Java微信公众平台开发(6) 微信开发中的token获取

    这篇文章主要为大家详细介绍了Java微信公众平台开发第六步,微信开发中的token获取,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 23种设计模式(2) java工厂模式

    23种设计模式(2) java工厂模式

    这篇文章主要为大家详细介绍了23种设计模式之java工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Java生成和解析XML格式文件和字符串的实例代码

    Java生成和解析XML格式文件和字符串的实例代码

    这篇文章主要介绍了Java生成和解析XML格式文件和字符串的实例代码,需要的朋友可以参考下
    2014-02-02
  • Java手写线程池之向JDK线程池进发

    Java手写线程池之向JDK线程池进发

    在前面的文章自己动手写乞丐版线程池中,我们写了一个非常简单的线程池实现,这个只是一个非常简单的实现,在本篇文章当中我们将要实现一个和JDK内部实现的线程池非常相似的线程池,需要的可以了解一下
    2022-10-10
  • 从零开始学SpringBoot如何开始使用图文详解

    从零开始学SpringBoot如何开始使用图文详解

    这篇文章主要介绍了从零开始学SpringBoot如何开始使用,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • SpringMVC使用@PathVariable接收参数过程解析

    SpringMVC使用@PathVariable接收参数过程解析

    这篇文章主要介绍了SpringMVC使用@PathVariable接收参数过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • openGauss数据库JDBC环境连接配置的详细过程(Eclipse)

    openGauss数据库JDBC环境连接配置的详细过程(Eclipse)

    这篇文章主要介绍了openGauss数据库JDBC环境连接配置(Eclipse),演示基于JDBC开发的主要步骤,会涉及创建数据库、创建表、插入数据等,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06

最新评论