SSH与SSM学习之Spring04——Spring属性注入之set方法注入
2017-10-21 12:30
381 查看
SSH与SSM学习之Spring04Spring属性注入之set方法注入
一属性注入
三Car 类
四User类
五配置文件 applicationContextxml
六示例代码
七测试结果
八源码地址
九IOC的参考blog
属性注入方式
set方法注入
构造函数注入
p名称空间注入
spel注入
上面能够解决简单的注入,比如普通的值类型、引用类型注入,但是集合等的注入就就有点不适合了。
数组、集合 ,properties的注入的复杂类型的注入。
二、set方法注入说明
set方法注入,顾名思义就是通过对象的set方法赋值的方式来注入的。这种方式是最重要的一种。例如配置文件的注入
通过 标签来个标识属性。其中
name属性:对象的属性名 (name=”age”)
value属性:对象的属性的值 (value=”18”)
ref属性:引用类型的实例 (ref=”car”)
下面开始测试。我们使用到的实体类是 Car 和 User。
架构师之路(39)—IoC框架
依赖注入
Spring AOP 详解
一属性注入
三Car 类
四User类
五配置文件 applicationContextxml
六示例代码
七测试结果
八源码地址
九IOC的参考blog
SSH与SSM学习之Spring04——Spring属性注入之set方法注入
一、属性注入
前面我们通过配置配置xml的方式,但是属性是没有赋值的,但是这又是必要的,下面看看属性值的配置方式(属性注入)属性注入方式
set方法注入
构造函数注入
p名称空间注入
spel注入
上面能够解决简单的注入,比如普通的值类型、引用类型注入,但是集合等的注入就就有点不适合了。
数组、集合 ,properties的注入的复杂类型的注入。
二、set方法注入说明
set方法注入,顾名思义就是通过对象的set方法赋值的方式来注入的。这种方式是最重要的一种。例如配置文件的注入
<!--==========set方式注入==============--> <bean name="user1" class="com.qwm.spring1.bean.User"> <!--值类型注入:为User对象的name属性赋值wiming, age属性赋值18。调用set方法--> <property name="name" value="wiming"/> <property name="age" value="18"/> <!--引用类型注入:为car属性注入下方配置的car对象--> <property name="car" ref="car"/> </bean>
通过 标签来个标识属性。其中
name属性:对象的属性名 (name=”age”)
value属性:对象的属性的值 (value=”18”)
ref属性:引用类型的实例 (ref=”car”)
下面开始测试。我们使用到的实体类是 Car 和 User。
三、Car 类
package com.qwm.spring1.bean; /** * @author: wiming * @date: 2017-09-27 14:59:50 星期三 * @decription: */ public class Car { private String color; private String name; public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Car{color='" + color + '\'' + ", name='" + name + '\'' + '}'; } }
四、User类
package com.qwm.spring1.bean; import java.io.Serializable; /** * @author: wiming * @date: 2017-09-25 14:45:56 星期一 * @decription: */ public class User implements Serializable { private String name; private int age; private Car car; public User() { System.out.println("User实例化了----" + this); } public User(String name, int age) { this.name = name; this.age = age; System.out.println("构造方法: User(String name, int age)"); } public User(int name, int age) { this.name = name + ""; this.age = age; System.out.println("构造方法: User(int name, int age)"); } public User(int age, String name) { this.name = name; this.age = age; System.out.println("构造方法: User(int age, String name)"); } public User(String name, int age, Car car) { this.name = name; this.age = age; this.car = car; System.out.println("构造方法: User(String name, int age, Car car)"); } public void init() { System.out.println("---User---init---"); } public void destory() { System.out.println("---User---destory---"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } @Override public String toString() { return "User{name='" + name + '\'' + ", age=" + age + ", car=" + car + '}'; } }
五、配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<!--==========set方式注入==============--> <bean name="user1" class="com.qwm.spring1.bean.User"> <!--值类型注入:为User对象的name属性赋值wiming, age属性赋值18。调用set方法--> <property name="name" value="wiming"/> <property name="age" value="18"/> <!--引用类型注入:为car属性注入下方配置的car对象--> <property name="car" ref="car"/> </bean>
<!--Car配置-->
<bean name="car" class="com.qwm.spring1.bean.Car">
<!--值类型注入-->
<property name="name" value="兰博基尼"/>
<property name="color" value="红色"/>
</bean>
</beans>
六、示例代码
/** * set 方式注入测试 */ @Test public void test1(){ ApplicationContext ac = new ClassPathXmlApplicationContext("com/qwm/spring1/c_inject/applicationContext.xml"); User user1 = (User) ac.getBean("user1"); System.out.println(user1); }
七、测试结果
User实例化了----User{name='null', age=0, car=null} User{name='wiming', age=18, car=Car{color='红色', name='兰博基尼'}}
八、源码地址
https://github.com/wimingxxx/spring01/tree/master/src/com/qwm/spring1/c_inject九、IOC的参考blog
我们知道 Spring 中主要的思想是 IOC 和AOP 。架构师之路(39)—IoC框架
依赖注入
Spring AOP 详解
相关文章推荐
- SSH与SSM学习之Spring06——Spring属性注入之p名称空间注入
- SSH与SSM学习之Spring08——Spring属性注入之复杂类型注入
- SSH与SSM学习之Spring05——Spring属性注入之构造函数注入
- SSH与SSM学习之Spring07——Spring属性注入之spel注入
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring 配置bean, 注解方式配置 xml方式要生产set方法方便属性注入,注解方式不需要,利用反射机制注入
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring IoC – 属性注入 – set方法和构造方法
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- ######Spring第5天ssh整合(注解版)难理解知识点:【自定义 方法加注解的方式】给dao注入sessionFactory属性+【搞清@Autowared和@Resource含义】
- SSH学习九 依赖注入及加载Spring配置文件的方法
- SSH与SSM学习之SSH整合04——Struts2与Spring整合
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring通过set方法注入Bean属性
- Spring学习04--注入、依赖、方法注入详解
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- spring学习(四)—属性注入的四种方法(通过配置文件)
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
- Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件