summarize:
Spring 管理项目中所有的对象,它是一站式框架,属于容器性质,容器中装什么对象就有什么功能
IOC:Inverse Of Control 反转控制:
以前是我们自己new对象,现在让程序自动创建
DI:注入方式
1、set 2、构造方法 3、字段注入
注入类型:
值类型 8大基本数据类型
引用.. 将依赖对象注入
applicationContext:
每次容器启动时,就会创建容器中配置的所有对象
从类路径加载配置文件,ClassPathXMLApplicationContext
Spring 必须要导的四个包:beans、Context、core、expression
Spring搭建:
1.先导包
2.创建对象
封装、get set toString
3.写配置,注册对象到容器
位置任意(建议放到src下)
配置文件名任意(建议applicationContext.xml)
配置 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 ">
<bean id="user" class="com.oracle.pojo.User"></bean>
</beans>
单元测试
public class Demo { // 单元测试的注解 @Test public void getUser(){ ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); // 获取对象 因为得到的是Obj类型 所以要强转 User user=(User)ac.getBean("user"); } }
绿色条是正常,如果红色是运行失败
复杂型注入
先new个类 QueyrVo
package com.oracle.pojo; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Properties; public class QueryVo { private String[] arr; private List<String> list; private Map<String,String> map; private Properties pro; public String[] getArr() { return arr; } public void setArr(String[] arr) { this.arr = arr; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public Map<String, String> getMap() { return map; } public void setMap(Map<String, String> map) { this.map = map; } public Properties getPro() { return pro; } public void setPro(Properties pro) { this.pro = pro; } @Override public String toString() { return "QueryVo [arr=" + Arrays.toString(arr) + ", list=" + list + ", map=" + map + ", pro=" + pro + "]"; } }
数组赋值
<bean name="query" class="com.oracle.pojo.QueryVo"> <!-- 数组赋值 --> <property name="arr"> <array> <value>张三</value> <value>张2</value> </array> </property> </bean>
测试
public class Demo { // 单元测试的注解 @Test public void getUser(){ ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); // 获取对象 因为得到的是Obj类型 所以要强转 // 单列对象 User user=(User)ac.getBean("user1"); System.out.println(user); QueryVo vo=(QueryVo)ac.getBean("query"); System.out.println(vo); } }
.