概述
Spring 是最受欢迎的企业级 Java 应用程序开发框架Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的Spring 是轻量级的框架宗旨
不产生新技术,使原有的技术使用更加方便核心
Ioc/DI:控制反转/依赖注入AOP:面向切面编程声明式事务Spring Framework Runtime
Test:Spring 提供测试功能Core Container:Spring 容器核心容器,Spring 启动的基本条件 Beans: Spring 负责创建类对象并管理对象Core:核心类Context:上下文参数,获取上下文资源或管理注解SpEL:spring-expression AOP:提供面向切面编程依赖Aspects:AOP依赖的包DataAccess/Integration:spring 封装数据访问层相关内容 JDBC:Spring 对 JDBC 封装后的代码ORM: 封装了持久层框架的代码.例如 Hibernatetransactions:对应 spring-tx.jar,声明式事务使用 WEB:需要 spring 完成 web 相关功能时需要 由tomcat加载spring配置文件时需要有spring-web包容器 Container
旧容器 BeanFactory新容器 ApplicationContext ,是 BeanFactory 子接口IoC
控制反转 (Inversion of Control)IoC 完成的事情 原先由程序员主动通过 new 实例化对象事情,转交给 Spring 负责控制反转中控制指的是:控制类的对象控制反转中反转指的是转交给 Spring 负责IoC 最大的作用:解耦 程序员不需要管理对象。解除了对象管理和程序员之间的耦合Spring 环境的搭建
导入 jar 包:四个核心包和一个日志包(commons-logging)
在 src 下新建 applicationContext.xml 文件
文件名称和路径自定义applicationContext.xml 配置的信息最终存储到了 AppliationContext 容器中导入 schema ,spring 配置文件是基于 schema schema 文件扩展名.xsdschema 比 DTD 具备更好的扩展性 每次引入一个 xsd 文件是一个 namespace(xmlns)配置文件中只需要引入基本 schema通过<bean/> 创建对象,默认配置文件被加载时创建对象 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- id表示获取到对象的一个标识 --> <!-- class 创建那个类的对象 --> <!-- ref 应用另一个bean value 基本数据类型或String index 参数的索引 name 关键字参数 value 值 type 参数的类型--> <bean id="peo" class="com.mak.pojo.People" ></bean> </beans> 实体类 public class People { private int id; private String name; // get、set、toString } 测试getBean(“<bean>标签id值”, 返回值类型);如果没有第二个参数,默认是 Object public class Test { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); People people = ac.getBean("peo",People.class); System.out.println(people); } } >>> People [id=0, name=null] getBeanDefinitionNames(),Spring 容器中目前所有管理的所有对象 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); String[] names = ac.getBeanDefinitionNames(); for (String string : names) { System.out.println(string); } >>> peo