`

构造函数注入的3种方式【非引用类型】

阅读更多

1、com.tz.model.UserBean.java

package com.tz.model;

import java.util.Date;

/**
 * 用户信息 
 * 创建人:LiPiaoShui
 * 时间:2015年12月7日-下午4:44:15
 * @version 1.0.0
 */
public class UserBean {
	
	private Integer id;
	private String username;
	private String password;
	private Integer age;
	private String address;
	private String email;
	private Date createTime;
	
	public UserBean() {
		super();
	}
	
	public UserBean(String username, String address) {
		super();
		this.username = username;
		this.address = address;
	}
	
	public UserBean(String username, Integer age) {
		super();
		this.username = username;
		this.age = age;
	}

	
	public UserBean(Integer id, String username, String password, Integer age,
			String address, String email, Date createTime) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
		this.age = age;
		this.address = address;
		this.email = email;
		this.createTime = createTime;
	}

	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	@Override
	public String toString() {
		return "UserBean [id=" + id + ", username=" + username + ", password="
				+ password + ", age=" + age + ", address=" + address
				+ ", email=" + email + ", createTime=" + createTime + "]";
	}
	
}

 

2、第1种:按参数的索引,此种方式的默认类型为java.lang.String

<bean id="user4" class="com.tz.model.UserBean">
	<constructor-arg index="0" value="keke"/>
	<constructor-arg index="1" value="30"/>
</bean>

 

3、第2种:按参数的类型

<bean id="user5" class="com.tz.model.UserBean">
	<constructor-arg type="java.lang.String" value="keke2"/>
	<constructor-arg type="java.lang.Integer" value="40"/>
</bean>

 

4、第3种:按参数的索引和类型【推荐】

<bean id="user6" class="com.tz.model.UserBean">
	<constructor-arg index="0" type="java.lang.String" value="keke3"/>
	<constructor-arg index="1" type="java.lang.String" value="50"/>
</bean>

 

5、测试代码

public void testIOC() {
	ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
	UserBean userBean4 = (UserBean) context.getBean("user4");
	UserBean userBean5 = (UserBean) context.getBean("user5");
	UserBean userBean6 = (UserBean) context.getBean("user6");
	//输出:UserBean [id=null, username=keke, password=null, age=null, address=30, email=null, createTime=null]
	System.out.println(userBean4);
	//输出:UserBean [id=null, username=keke2, password=null, age=40, address=null, email=null, createTime=null]
	System.out.println(userBean5);
	//输出:UserBean [id=null, username=keke3, password=null, age=null, address=50, email=null, createTime=null]
	System.out.println(userBean6);
}

 

 

分享到:
评论

相关推荐

    C#MVC实现带参数的构造注入

    在C# MVC中,我们可以通过Castle Windsor来实现在控制器中带有参数的构造函数注入。 首先,我们需要了解什么是依赖注入。依赖注入是一种设计模式,其核心思想是将依赖关系从代码中解耦出来,使得组件之间可以独立地...

    Java开发学习(六)----DI依赖注入之setter及构造器注入解析.doc

    然后,在配置文件中使用 property 标签的 ref 属性注入引用类型对象。 在 setter 注入中,可以注入简单类型和引用类型。例如,在 BookServiceImpl 中可以注入 BookDao 对象。 三、构造器注入 构造器注入是指通过...

    Spring IOC的注入方式总结

    当类有多个构造函数时,Spring会根据参数类型匹配最合适的构造器进行注入。这种方式强制了类在创建时就需要提供所有依赖,有利于尽早发现依赖问题。 ```java public class UserService { private UserRepository ...

    关于spring boot中几种注入方法的一些个人看法

    @Autowired 是 Spring 中最常用的注入方法之一,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。@Autowired 的工作原理是,在启动 Spring IoC 时,容器自动装载了一个 ...

    依赖注入那些事儿

    构造函数注入是在对象创建时通过构造函数参数来注入依赖。这种方式可以确保对象在创建时就拥有所有必需的依赖项,并且对象的状态不会在创建后发生改变。 ##### 3.1.3 依赖获取 依赖获取是指对象主动请求依赖项。...

    java巩固练习Spring 的bean注入方式有几种demo例子

    2. **构造器注入(Constructor Injection)**:Spring允许我们在bean的构造函数中注入依赖。这种方式确保了对象在创建时就具有所有必要的依赖。在XML配置中,我们使用`&lt;constructor-arg&gt;`标签: ```xml ...

    spring框架技术+第2天+xmind思维导图

    构造函数注入 index:可省略,参数下标,默认从0开始 name :可省略,构造函数参数列表中的参数名称 public UserService(IUserDao dao) { this.dao = dao; } ref :表示引用对象的引用地址,即容器中的...

    模仿Spring依赖注入

    通过在类的构造函数中添加参数,Spring容器会根据参数类型匹配并注入相应的bean。例如: ```java public class UserService { private UserDao userDao; public UserService(UserDao userDao) { this.userDao =...

    Spring Ioc(依赖注入)入门例子--属性注入

    2. 构造器注入:这种方式在对象创建时就提供依赖,提供了更强的类型安全性和可读性。你需要提供一个带有所需参数的构造函数,Spring容器会在创建对象时传入对应的依赖: ```java public class MyComponent { ...

    详析Spring中依赖注入的三种方式

    本文将详细解析Spring中常用的三种依赖注入方式:set方法注入、构造函数注入和注解注入。 首先,我们来看set方法注入,也称为属性注入。这种方式通过setter方法将依赖对象注入到目标类中。例如,在`UserServiceImpl...

    SpringDI.rar

    1. **接口注入**:这是一种非侵入性的注入方式,它不涉及具体的实现类。Spring容器可以通过代理对象实现接口注入,开发者定义接口,然后由Spring创建并注入实现了该接口的实例。 2. **构造器注入**:在类的构造函数...

    SPRING DI注入例子

    当类有多个构造函数时,可以使用`@Autowired`注解指定哪个构造函数进行注入。 - **setter注入**:通过setter方法注入依赖,`@Autowired`注解可用于setter方法上,自动匹配类型。 - **字段注入**:直接在类的成员...

    spring四种依赖注入方式的详细介绍

    在`SpringAction`类中,我们不再提供setter方法,而是使用带参数的构造函数,将`SpringDao`和`User`作为构造参数。在XML配置文件中,使用`&lt;constructor-arg&gt;`标签,通过`ref`属性指定依赖的bean。这种方式确保了在...

    Unity实现依赖注入基础

    Unity通过构造函数注入、属性注入或方法注入等方式实现这一过程。 4. **Unity容器**: 它是Unity的核心,负责管理和控制对象的生命周期,以及根据配置创建和解析对象。你可以向容器注册类型映射,然后在需要时从容器...

    Ioc注入讲解

    - **注入方法**:通过构造函数注入依赖。 - **方法拦截**:在方法执行前后添加额外的逻辑。 通过以上API,可以实现对Bean的精细控制和管理。 综上所述,IoC容器是Java开发中非常重要的技术之一,它通过管理对象的...

    生动讲解依赖注入

    2. **构造器注入**:在对象构造时通过构造函数参数传递依赖项。 3. **依赖查找**:对象主动查找并绑定自己的依赖项。 在IGame的故事中,可以考虑使用构造器注入的方式,将不同的武器策略传递给`Role`对象。 #### ...

    使用Unity.MVC3在asp.net mvc3中实现依赖注入

    Unity.Mvc3会自动处理构造函数参数的注入,提供`Logger`实例给`_logger`字段。 此外,Unity容器还支持多种高级功能,如生命周期管理、接口多态性、拦截器等。例如,如果你希望`Logger`类的实例在每个请求后被释放,...

    第七章 Spring4 继承、依赖、引用

    - **构造器注入**:通过Bean的构造函数传递依赖。 - **接口注入**:较少使用,通过实现特定的接口来注入依赖。 3. **引用(Bean的引用)** 在Spring中,我们可以将一个Bean引用另一个Bean,这种引用被称为bean...

    Unity实现依赖注入

    这通常发生在构造函数中,Unity会自动注入依赖。 ```csharp public class MyClass { private readonly IService _service; public MyClass(IService service) { _service = service; } } ``` 5. **生命周期...

    spring.pdf java开发必学

    2. **构造方法注入**:通过Bean的构造函数进行依赖注入。这种方式适用于对象创建时就需要所有依赖的情况,但要注意避免循环依赖问题,因为构造注入可能导致无法解决的循环依赖链。 除了基本的Bean实例化和注入,...

Global site tag (gtag.js) - Google Analytics