注入:为对象的属性赋值
1.基本数据类型的set注入
public class User {
private int userid;
private String username;
private String password;
}
为此类添加getter和setter
配置文件:
<bean id="user" class="com.dowebber.inject.User">
<property name="userid" value="1"></property>
<property name="password" value="pass_word"></property>
<property name="username" value="tom"></property>
</bean>
测试类:
User user = (User)context.getBean("user");
2.基本数据类型的构造器注入(构造方法)
为User添加构造方法
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public User(int userid, String username, String password) {
super();
this.userid = userid;
this.username = username;
this.password = password;
}
配置文件
<bean id="user" class="com.dowebber.inject.User">
<constructor-arg value="1"></constructor-arg>
<constructor-arg value="tom"></constructor-arg>
<constructor-arg value="pass_word"></constructor-arg>
</bean>
多构造器时应该指定参数顺序和类型
<constructor-arg value="1" type="int" index="0"></constructor-arg>
<constructor-arg value="tom" type="String" index="1"></constructor-arg>
特殊类型数据的注入
public class Student {
private int id;
private String name;
private String [] favor;
private Set set;
private List list;
private Map map;
private User user;
}
添加setter 和getter
<!--数组的注入-->
<property name="favor">
<list>
<value>上网</value>
<value>足球</value>
</list>
</property>
<!--Set的注入-->
<property name="set">
<set>
<value>setvalue1</value>
<value>setvalue2</value>
</set>
</property>
<!--List的注入-->
<property name="list">
<list>
<value>listvalue1</value>
<value>listvalue2</value>
</list>
</property>
<!--Map的注入-->
<property name="map">
<map>
<entry key="key1" value="value1"></entry>
<entry key="key2" value="value2"></entry>
</map>
</property>
自定义类型对象的注入
<bean id="user" class="com.dowebber.inject.User">
<constructor-arg value="1" type="int" index="0"></constructor-arg>
<constructor-arg value="tom" type="String" index="1"></constructor-arg>
<constructor-arg value="pass_word"></constructor-arg>
</bean>
<property name="user" >
<ref bean="user"/><!-- 也可以使用local="user" 不过这样的话,只能引用本配置文件中的Bean -->
</property>
测试代码:
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("com/dowebber/inject/spring.xml");
Student std = (Student) context.getBean("student");
System.out.println(std.getId());
System.out.println(std.getName());
System.out.println(std.getFavor().toString());
System.out.println(std.getList());
System.out.println(std.getSet());
System.out.println(std.getMap());
System.out.println(std.getUser());
}
分享到:
相关推荐
在Spring框架中,属性注入是核心特性之一,它允许我们通过依赖注入(Dependency Injection, DI)来管理对象的属性,而不是让对象自行创建或查找它们的依赖。这有助于提高代码的可测试性、可维护性和解耦性。下面将...
在Spring框架中,属性注入是一种核心特性,它允许开发者在不编写硬编码依赖关系的代码情况下,将对象的依赖从内部解耦出来。当我们遇到一些特殊的对象,如由工厂方法创建,而非简单地通过`new`关键字实例化时,...
在本篇内容中,我们将深入探讨Spring如何处理Bean的属性注入,包括对象属性的注入方式、相关注解以及最佳实践。 1. **属性注入的基本概念** - Spring通过依赖注入(Dependency Injection,简称DI)来管理Bean的...
在Spring框架中,Bean的属性注入是核心功能之一,它允许开发者在不编写代码的情况下配置对象的依赖关系。本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中...
在Spring框架中,Bean的属性注入是实现依赖注入(Dependency Injection,DI)的重要方式之一。通过属性注入,可以将一个Bean的某些属性值或者引用其他Bean实例的值注入到当前Bean中。这种方式极大地提高了系统的灵活...
在Spring框架中,属性注入是将外部配置的属性值注入到Bean对象中,使得对象可以在运行时根据配置动态地获取其依赖的属性。本篇学习笔记主要探讨了Spring中的属性注入方式,包括了传统的XML配置注入、注解式注入以及...
在Spring中,属性注入(Property Injection)是一种重要的功能,它允许开发者在不直接创建对象的情况下设置对象的属性,从而实现了松耦合和更好的可测试性。 **XML方式的属性注入** 1. **Set注入**:这是Spring ...
属性注入是指Spring容器将一个对象的属性值设置为另一个对象的引用。这通常用于将服务对象注入到需要使用它们的客户端对象中。在Spring中,有两种主要的属性注入方式:setter方法注入和构造器注入。 1. Setter方法...
属性注入是Spring框架的核心特性之一,它通过容器来控制对象的创建和初始化,而不是由对象自己管理其依赖。Spring提供了两种主要的注入方式:设值注入(Setter Injection)和构造器注入(Constructor Injection)。...
在Spring框架中,设值注入(Value Injection)是一种将外部属性值注入到bean对象中的方法。它是通过在bean的配置元数据中定义属性值来实现的,这些值会在bean实例化时自动设置。设值注入是Spring依赖注入...
在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean实例的属性值,使得对象的初始化更加灵活。本文将深入探讨Spring中的"名称空间p",这是一种用于配置Bean属性注入的方式,...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象间的依赖关系得以解耦,提高了代码的可测试性和可维护性。Spring提供了多种注入方式,包括set注入、构造注入和自动注入...
在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的介绍和分析。 1. @Autowired @...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇将详细讲解setter注入和构造注入这两种常见的DI方式,并结合...
1. 反射:Spring使用Java的反射API动态地查找和调用构造函数、setter方法等,实现对象的创建和属性设置。当容器遇到带有@Autowired注解的字段或方法时,会根据类型或名称找到合适的依赖,并通过反射进行注入。 2. ...
在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean的属性值,从而实现对象的依赖管理。在本主题“day38 14-Spring的Bean的属性的注入:集合属性的注入”中,我们将深入探讨...
在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本篇主要介绍Spring中的三种注入方式,着重讲解在"Spring三种注入...
下面我们将详细探讨Spring 中的三种注入方式:接口依赖注入(Type1)、setter/getter 注入(Type2,也称为属性注入)和构造方法注入(Type3)。 1. **接口依赖注入(Type1)** 这种注入方式相对不常见,主要适用于...
在 Spring 配置文件中,我们可以通过将 InterfaceB 接口的实例对象注入 ClassA 中,以实现依赖注入。 在 Spring 配置文件中,我们需要定义两个 Bean,分别是 ClassC 和 ClassA。在 ClassC 的定义中,我们可以设置 ...
在Spring框架中,属性注入是核心特性之一,它允许我们为bean对象动态地设置属性值,无需在代码中使用new关键字实例化对象并手动设置属性。这种依赖注入(Dependency Injection,DI)的设计模式大大增强了软件的可...