用的是IDEA的maven工程,pom.xml文件导包依赖省略

本文主要写set方式注入

(一)、一般类型注入

一、写两个实体类Car、User

public class Car {
private String color;
private String carName; public String getColor() {
return color;
} public void setColor(String color) {
this.color = color;
} public String getCarName() {
return carName;
} public void setCarName(String carName) {
this.carName = carName;
} @Override
public String toString() {
return "Car{" +
"color='" + color + '\'' +
", carName='" + carName + '\'' +
'}';
}
}
public class User {
private String name;
private Integer age; private Car car; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer 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(由于用的是IDEA,配置文件放在resources文件夹中),并注意约束的导入

<?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="user" class="dyh.so.User">
<!--为User对象的name与age注入Lily和12-->
<property name="name" value="lily"></property>
<property name="age" value="12"></property>
<!--为car属性注入下面的car对象-->
<property name="car" ref="car"></property> </bean> <bean name="car" class="dyh.so.Car">
<!--为Car对象注入属性值-->
<property name="carName" value="兰博基尼"></property>
<property name="color" value="red"></property>
</bean>
</beans>

三、测试

import dyh.so.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; @Test
public void fun(){
//1、创建容器对象
ApplicationContext ct = new ClassPathXmlApplicationContext("applicationContext.xml");
//2、向容器要User对象
User user = (User) ct.getBean("user");
//3、打印在容器中获得的对象
System.out.println(user);
}
}

测试结果:

(二)、复杂类型注入

一、写出要注入的实体类

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties; public class CollectionBean {
private List list;//list/set 类型注入
private Map map;//map类型注入
private Properties prop;//properties类型注入 public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} public Map getMap() {
return map;
} public void setMap(Map map) {
this.map = map;
} public Properties getProp() {
return prop;
} public void setProp(Properties prop) {
this.prop = prop;
} @Override
public String toString() {
return "CollectionBean{" +
", list=" + list +
", map=" + map +
", prop=" + prop +
'}';
}
}

二、书写配置文件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="user" class="dyh.so.User">
<!--为User对象的name与age注入Lily和12-->
<property name="name" value="lily"></property>
<property name="age" value="12"></property>
<!--为car属性注入下面的car对象-->
<property name="car" ref="car"></property> </bean> <bean name="car" class="dyh.so.Car">
<!--为Car对象注入属性值-->
<property name="carName" value="兰博基尼"></property>
<property name="color" value="red"></property>
</bean> <!--复杂类型注入--> <bean name="collbean" class="dyh.ss.CollectionBean">
<!--list 注入-->
<property name="list">
<list>
<value>张三</value>
<value>李四</value>
<ref bean="car"/>
<ref bean="user"/>
</list>
</property> <!--map注入-->
<property name="map">
<map>
<entry key="1" value="一"></entry>
<entry key="2" value="二"></entry>
<entry key="3" value="三"></entry>
<entry key-ref="user" value-ref="car"></entry>
</map>
</property> <!-- prperties 类型注入 -->
<property name="prop" >
<props>
<prop key="driverClass">com.jdbc.mysql.Driver</prop>
<prop key="userName">root</prop>
<prop key="password">1234</prop>
</props>
</property>
</bean>
</beans>

三、测试

 @Test
public void fun2(){
//创建容器
ApplicationContext ct = new ClassPathXmlApplicationContext("applicationContext.xml");
//向容器中要ConnectionBean对象
Object collbean = ct.getBean("collbean"); //打印出来在spring中获得的对象
System.out.println(collbean);
}

测试结果

最新文章

  1. (转)Tomcat7+Redis存储Session
  2. Preference Screen 首选项
  3. NAT 网络地址转换
  4. VPN服务器是什么?
  5. 转载 - Vultr VPS注册开通且一键快速安装PPTP VPN和电脑连接使用
  6. 03-Vue入门系列之Vue列表渲染及条件渲染实战
  7. 在ps中画两个同心圆并且把两个同心圆进行任意角度切割
  8. AC日记——传话 codevs 1506 (tarjan求环)
  9. 【转】【SSE】基于SSE指令集的程序设计简介
  10. Scrapy and Selenium
  11. AsyncTask的使用方法和理解
  12. bootstrap-fileinput初体验
  13. Django web 开发指南 no such table:
  14. QT参考录
  15. ios打包ipa的四种实用方法(.app转.ipa)-备
  16. Altium Designer 生成 Mach3 G代码的程序
  17. Canvas上绘制几何图形
  18. mybatis插入List集合数据
  19. WebStorm 快捷键一览
  20. ado.net 之 oracle 数据库

热门文章

  1. Python3-设计模式-迭代器模式
  2. web如何测试
  3. CountDownLatch 计数器
  4. SDL软件安全读书笔记(一)
  5. vue 生命周期钩子 路由钩子 动画钩子 执行顺序
  6. Navicat15安装激活版教程
  7. SQL Server 索引的含义和特点
  8. 程序员的修炼-我们为什么会编写BUG
  9. c++ 宏定义调用不定参数的函数
  10. Redis四大模式之主从配置