Spring IOC创建对象的两种方式

 更新时间:2021年03月15日 14:31:55   作者:XIaoyummm  
这篇文章主要给大家介绍了关于Spring IOC创建对象的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

IOC创建对象的方式

一、 使用无参构造创建对象(默认方式)

创建实体类

注意:属性必须要有set方法,来完成注入

public class User {
  private String name;

  public User() {
    System.out.println("执行了User类的无参构造方法~");
  }

  public User(String name){
    this.name = name;
    System.out.println("执行了User类的有参构造方法");
  }

  //使用无参构造方法时,必须要设置set方法,因为注入时 需要通过set方法注入
  public void setName(String name) {
    this.name = name;
  }

  @Override
  public String toString() {
    return "User{" +
        "name='" + name + '\'' +
        '}';
  }
}

配置Bean

<?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
    https://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="user" class="com.test.pojo.User">
    <property name="name" value="gyp"/>
  </bean>

</beans>

测试类

public class MyTest {
  public static void main(String[] args) {
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    User user = context.getBean("user", User.class);
    System.out.println(user);
  }
}

​ 结果:

二、使用有参构造创建对象

  • 通过下标注入
  • 通过名字注入 【推荐】
  • 通过类型注入

有参构造,不需要set方法注入

通过下标方式注入(通过index来选择,给有参构造的第几个参数注入

(1)配置Bean

	<bean id="user" class="com.test.pojo.User">
    <constructor-arg index="0" value="gyp"/>
  </bean>

(2)测试结果

通过名字注入

(1)配置Bean

  <bean id="user" class="com.test.pojo.User">
    <constructor-arg name="name" value="gyp"/>
  </bean>

(2)测试结果

通过类型注入(不建议使用!因为当类里面有两个相同类型的属性时,无法给属性注入

(1)配置Bean

	<bean id="user" class="com.test.pojo.User">
    <constructor-arg type="java.lang.String" value="gyp"/>
  </bean>

(2)测试结果

总结:在加载配置文件的时候,IOC就已经创建好了对象!

到此这篇关于Spring IOC创建对象的两种方式的文章就介绍到这了,更多相关Spring IOC创建对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Log4j.properties配置及其使用

    Log4j.properties配置及其使用

    本文主要介绍了Log4j.properties配置及其使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Spring Boot如何在加载bean时优先选择我

    Spring Boot如何在加载bean时优先选择我

    这篇文章主要介绍了Spring Boot如何在加载bean时优先选择我,在 Spring Boot 应用程序中,我们可以采取三种方式实现自己的 bean 优先加载,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
    2023-03-03
  • Spring中bean的初始化和销毁几种实现方式详解

    Spring中bean的初始化和销毁几种实现方式详解

    这篇文章主要介绍了Spring中bean的初始化和销毁几种实现方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Spring MVC处理响应的案例详解

    Spring MVC处理响应的案例详解

    当服务器向客户端响应数据时,SpringMVC框架会使用“转换器”(Converter)将方法的返回值进行转换,SpringMVC框架还会自动使用不同的转换器,因此这篇文章就给大家详细介绍一下Spring MVC如何处理响应并附上案例,需要的朋友可以参考下
    2023-06-06
  • 浅谈基于SpringBoot实现一个简单的权限控制注解

    浅谈基于SpringBoot实现一个简单的权限控制注解

    这篇文章主要介绍了基于SpringBoot实现一个简单的权限控制注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • java多线程学习笔记之自定义线程池

    java多线程学习笔记之自定义线程池

    本篇文章主要介绍了java多线程学习笔记之自定义线程池 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • jackson设置返回null为空字符串的操作

    jackson设置返回null为空字符串的操作

    这篇文章主要介绍了jackson设置返回null为空字符串的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • mybatisPlus实现倒序拼接字符串

    mybatisPlus实现倒序拼接字符串

    这篇文章主要介绍了mybatisPlus实现倒序拼接字符串方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • RabbitMQ的ACK确认机制保障消费端消息的可靠性详解

    RabbitMQ的ACK确认机制保障消费端消息的可靠性详解

    这篇文章主要介绍了RabbitMQ的ACK确认机制保障消费端消息的可靠性详解,简单来说,就是你必须关闭 RabbitMQ 的自动ack ,可以通过一个 api 来调用就行,然后每次你自己代码里确保处理完的时候,再在程序里 ack 一把,需要的朋友可以参考下
    2023-12-12
  • SpringBoot中过滤器Filter+JWT令牌实现登录验证

    SpringBoot中过滤器Filter+JWT令牌实现登录验证

    本文主要介绍了SpringBoot中过滤器Filter+JWT令牌实现登录验证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04

最新评论